安全的方法来阻止用户伪造表单

时间:2011-12-16 09:48:06

标签: php jquery ajax security antiforgerytoken

如何防止用户在PHP或jquery端伪造表单,我使用Jquery的ajax功能来提交表单,这意味着技术人员可以更改某些变量,例如某些值的变量(不应该通过使用萤火虫或网络检查员等同时改变/是用户ID或类似的东西。

那么如何防止用户更改这些变量或确保它们通过安全且良好的方式不可更改?

由于

5 个答案:

答案 0 :(得分:4)

正如其他人已经说过的那样,无法阻止用户被篡改。

您正在接收我的数据,我可以向您发送任何我想要的内容,我甚至可以手动执行HTTP请求,甚至无需使用浏览器,您也无法做任何事情。

如果您不希望用户能够更改信息,请不要将其提供给他。

您可以将其存储在PHP的会话中,该会话存储在服务器端(不使用cookie,也将它们发送给用户)或将其保存在数据库中,最终用户无法访问它们。

如果您仍想将数据传递给用户,请使用安全哈希算法和安全计算某种哈希值(安全哈希值) message digest作为Gumbo noted,这将排除数据的CRC32或MD5和MAC之类的算法,如数据名称或生日)并存储在服务器端,然后当用户提交数据时,检查哈希值是否匹配。

但要知道这个解决方案不是100%安全的。散列函数存在冲突,并且存在错误的实现。

我建议坚持黄金法则:如果它不在那里,它就不能破坏/被篡改/被盗等等。

答案 1 :(得分:2)

您无法阻止用户这样做。

答案 2 :(得分:2)

将这些变量存储在会话中。

答案 3 :(得分:2)

你永远不能相信客户。验证服务器上的表单以确保数据正常。这意味着检查给定用户ID是否有权发布其表单等

答案 4 :(得分:0)

我要去...你做不到。你永远不会相信用户的数据;客户端验证始终只是 的第一道防线。