Node.js 如何防止用户修改REST请求?

Node.js 如何防止用户修改REST请求?,node.js,rest,Node.js,Rest,这个问题听起来可能很琐碎,但即使在阅读了大量教程之后,我仍然不知道应该如何实现REST安全性 我有一个网页,很快就会准备好移动应用程序。他们两人都将使用RESTAPI(用node.js编写),问题是——如何防止用户修改这些请求?在浏览器中很容易看到网络流量,以及向服务器发出的所有GET/POST请求。复制这样的请求、修改其参数和/或负载并将其发送到服务器似乎也很容易 如何确保是我的网页或应用程序发出了请求,而不是其他人?目前的安全性通常使用传输层安全性和OAuth2的组合。OAuth2提供身份验

这个问题听起来可能很琐碎,但即使在阅读了大量教程之后,我仍然不知道应该如何实现REST安全性

我有一个网页,很快就会准备好移动应用程序。他们两人都将使用RESTAPI(用node.js编写),问题是——如何防止用户修改这些请求?在浏览器中很容易看到网络流量,以及向服务器发出的所有GET/POST请求。复制这样的请求、修改其参数和/或负载并将其发送到服务器似乎也很容易


如何确保是我的网页或应用程序发出了请求,而不是其他人?

目前的安全性通常使用传输层安全性和OAuth2的组合。OAuth2提供身份验证和授权,确保对资源的适当访问,TLS既保护网络上的数据,又防止您担心的重播攻击。两者都不是Restful API特有的,您可以发现它们也在非Rest上下文中使用。

Sisyphus是绝对正确的:您的重点应该放在保护通道(TLS、SSH等)和身份验证(例如OAuth2)上

你绝对应该熟悉这本书。特别是,从以下方面开始:

这是一个优秀的“实践”教程,它为您提供了所有需要关注的不同方面的概述:

一旦您阅读了本教程并扫描了OWASP备忘单,您将更好地了解您需要担心的事情,有哪些选项/技术可用于缓解这些风险,以及哪些可能最适合您的特定场景


祝你好运

根据我个人的经验,我会说在服务器端做一些小检查和预防措施。我想你是想避免洪水和注射之类的?您可以尝试检查内容长度标题,如果它太大(大于预期),请删除并发回错误。如果它通过了,则通过消毒液将其发送,以消除对注入代码的任何尝试。在安全方面没有什么是万无一失的,您只能通过覆盖已知的弱点来降低风险。PS-我不知道如何在低级别处理请求,但我相信跨来源限制应该可以防止这种情况。基本上,你不能。服务器公开的任何内容都可以被internet上的任何客户端使用。您自己的Javascript在网页中所做的任何事情都可以被任何脚本在任何地方使用。需要帐户和该帐户的身份验证,然后您可以禁用任何危害系统的严重滥用者的帐户。但是您不能阻止其他人使用您的API。如果你在服务器中保留更多功能,只从服务器中公开界面元素,你会得到更多保护,但这还有其他缺点。问:我如何确保是我的网页或应用程序发出了请求,而不是其他人?答:有很多选择。首先看下面引用的。例如:“反回放:考虑使用限时加密密钥,键入会话令牌或API密钥,日期和时间,以及传入的IP地址……”。没有一种技术是可以保证的,但您可以降低风险!