我有一个名为addItem的PHP服务 当有人在客户端提交表单时,将调用此服务。
如何确保只在从预期表单中调用时才添加项目? 例如,试图阻止某人通过自动卷曲调用提交内容。
谢谢你,
三通
答案 0 :(得分:4)
简短的回答是,你做不到。只要表单可访问,您可以使用自动方式处理用于保护表单的任何方法。您永远不应指望用户发送的数据是安全的。但是,对于想要欺骗你的表格的人来说,你可以采取一些措施来使事情变得更具挑战性。
最终,如果有人想通过其他方式向您的表单提交数据,那么它仍然是可能的。上述步骤可能会使其更具挑战性,但用户可以采取的任何操作都可以编写脚本,因此请确保在服务器端进行适当的验证。
答案 1 :(得分:2)
这篇文章有一个很好的答案:CSRF (Cross-site request forgery) attack example and prevention in PHP
基本思想是你想要在表单中生成一个带有随机数的表单元素,并确保表单发送回相同的元素。例如:
<form ...>
<input name="csrf_dfjfi4i4i4k3" value="csrf_dfjfi4i4i4k3" type="hidden" />
现在,当您收到帖子时,请确保该元素存在且值与名称相同。