我们有一个REST端点,为我们公开的网站提供一些后端服务。该网站不需要任何用户身份验证即可访问其内容。任何人都可以匿名访问它。
鉴于这种情况,我们仍然希望保护后端REST api在某种程度上是安全的,只有使用我们网站的用户才能调用它。
- 我们不希望恶意用户在浏览器之外运行脚本,例如。
- 我们甚至不希望他运行自动化UI来访问端点的脚本。
醇>
我知道没有用户身份验证的完全公共端点在某种程度上是不可能保护的。但是我们可以将使用限制在有效方案中吗 一些想法:
- 使用TLS / SSL进行通信 - 这仅保护通道。
- 使用客户端/浏览器需要传递给服务器的一些Api密钥(定期过期)。 (恶意用户仍然可以使用密钥)
- 使用密钥来限制请求数量。
- 与CSRF令牌结合使用?
- 在网站上使用CAPTCHA以确保人类用户(为最终用户添加烦恼元素)。
- 使用IP白名单。
- 使用负载平衡和服务器扩展来处理负载。
醇>
我认为这应该是在野外发生的情况。
- 哪些安全措施很普遍?
- 是否可以仅通过网站限制使用,而不是通过脚本?
- 如果无法确保安全,那么这些公共休息终端会使用什么样的缓解措施?
醇>