Web Services 保护表单送出的公用端点

u59ebvdq  于 2022-11-15  发布在  其他
关注(0)|答案(1)|浏览(218)

我有一个next.js静态网站,上面有一些表单,如联系人、工作申请等。我们的后端是.NET 4.6。由于这些表单是公共的,API端点(Web服务)基本上没有身份验证,任何人都可以使用工具(如Postman)开始发出请求。我如何才能使这些端点安全呢?我想到了一些我可以做的事情:
1.加密这些请求的有效负载,然后在处理之前在后端解密它们。这个想法是,如果其他人可以看到端点url,他们仍然不能正确加密数据,端点将拒绝它。问题出现了,前端用来加密有效负载的密钥可以使用开发工具检查,然后任何人都可以发送正确加密的有效负载。
1.在后端,检查请求头,确保引用或源头指向我的网站。现在的问题是,有一些工具可以帮助你模仿一个成功的请求头,这意味着有人可以用正确的头欺骗一个请求。
使这些端点安全的最佳方法是什么?是否有一种方法可以限制只有我的网站才能请求它?或者是否有一种方法可以隐藏客户端的加密密钥?关于如何解决此问题,还有其他建议吗?

2hh7jdfx

2hh7jdfx1#

由于您的API是公共的,并且生成有效负载的HTML也是公共的,因此确实没有办法保证安全性。

  • 请求令牌以在表单提交期间发送
  • 请求此令牌时,记录请求者的IP
  • 限制每个IP每小时允许的请求数(可以是5个?)
  • 将从#1得到的令牌传递到#2
  • 提交表单时,验证令牌的请求者IP与当前请求IP是否匹配
  • 检查在给定时间范围内是否有来自同一IP的其他表格提交,如果有,则拒绝请求。


你只需要限制每个IP每小时允许提交的数量。虽然这不会阻止攻击,但它会让他们足够慢,他们会转移到更容易的目标。

相关问题