我有一个next.js静态网站,上面有一些表单,如联系人、工作申请等。我们的后端是.NET 4.6。由于这些表单是公共的,API端点(Web服务)基本上没有身份验证,任何人都可以使用工具(如Postman)开始发出请求。我如何才能使这些端点安全呢?我想到了一些我可以做的事情:
1.加密这些请求的有效负载,然后在处理之前在后端解密它们。这个想法是,如果其他人可以看到端点url,他们仍然不能正确加密数据,端点将拒绝它。问题出现了,前端用来加密有效负载的密钥可以使用开发工具检查,然后任何人都可以发送正确加密的有效负载。
1.在后端,检查请求头,确保引用或源头指向我的网站。现在的问题是,有一些工具可以帮助你模仿一个成功的请求头,这意味着有人可以用正确的头欺骗一个请求。
使这些端点安全的最佳方法是什么?是否有一种方法可以限制只有我的网站才能请求它?或者是否有一种方法可以隐藏客户端的加密密钥?关于如何解决此问题,还有其他建议吗?
1条答案
按热度按时间2hh7jdfx1#
由于您的API是公共的,并且生成有效负载的HTML也是公共的,因此确实没有办法保证安全性。
或
你只需要限制每个IP每小时允许提交的数量。虽然这不会阻止攻击,但它会让他们足够慢,他们会转移到更容易的目标。