首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >保护RESTful API:是否可能不允许来自JS的XHR请求?

保护RESTful API:是否可能不允许来自JS的XHR请求?
EN

Stack Overflow用户
提问于 2013-06-21 05:57:08
回答 1查看 98关注 0票数 1

我的应用程序(主要是用主干编写的客户端代码)与Node.js服务器接口。我的服务器的唯一目的是为我的骨干应用程序提供API端点。

GET请求非常安全,攻击者在这里做的不多。但我确实有几个帖子,并提出了要求。其中一个PUT请求负责更新特定用户的投票计数。

代码语言:javascript
运行
复制
app.put('/api/vote`, function(req, res) {
  // POST form data from the client
  var winningPerson = req.body.winner; // userID
  var losingPerson = req.body.loser;   // userID
}

我注意到,有些人只是通过JS控制台或某种REST控制台向某个特定用户发送PUT请求,绕过了用户界面强制执行的应用程序的意图。如果您按预期使用此应用程序,它将永远不允许您连续多次为同一个人投票,更不用说数据库中的任意用户(假设您知道他们的用户id)。

但是的,是的,我知道:“不要相信客户”。那么,我该如何解决上述问题呢?在这里,某种IP地址检查会帮助防止在3-5分钟内进行多次投票吗?如何阻止从控制台访问我的API,这样用户就不能任意地为他们想要的投票,而只能用鼠标单击图像,或者至少通过控制台为这两个人而投票,而不是任何任意的人?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-21 06:25:55

答案在您的服务器中。它不应该允许用户在指定的时间范围内进行多次投票。这是一种业务规则,您只能通过服务器强制执行,因为它在您的控制之下。

用户界面中的任何强制执行都是好的和有利可图的,但并不是防弹的。您一定要检查服务器才能确定。有很多更多地涉及服务器的业务逻辑

我的服务器的唯一目的是为我的骨干应用程序提供API端点。

不要试图控制超出您控制范围的东西--应用程序的客户端。有些人投票次数更多,因为你(你的API)允许他们这样做。一旦你的服务器回复“5分钟后试一试,伙计。”他们会停止这样做,否则至少不会有什么害处。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17228570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档