如何防止用户在 PHP 或 jquery 端伪造表单,我正在使用 Jquery 的 ajax 功能来提交表单,这意味着技术人员可以更改一些变量,例如某些东西的值(不应该通过使用萤火虫或网络检查器等改变/是用户ID或类似的东西)。
那么如何通过安全且良好的方式防止用户更改这些变量或确保它们不可更改呢?
谢谢
如何防止用户在 PHP 或 jquery 端伪造表单,我正在使用 Jquery 的 ajax 功能来提交表单,这意味着技术人员可以更改一些变量,例如某些东西的值(不应该通过使用萤火虫或网络检查器等改变/是用户ID或类似的东西)。
那么如何通过安全且良好的方式防止用户更改这些变量或确保它们不可更改呢?
谢谢
正如其他人已经说过的那样,您无法阻止用户篡改。
你从我这里接收数据,我可以向你发送任何我想要的东西,我什至可以手动发出 HTTP 请求,甚至不需要使用浏览器,而你对此无能为力。
如果您不希望用户能够更改信息,请不要将其提供给他。
您可以将其存储在 PHP 的会话中,该会话存储在服务器端(不要使用 cookie,它们也会发送给用户)或将其保存在数据库中,最终用户都无法访问它们。
如果您仍想将数据传递给用户,请计算某种散列(安全散列,使用安全散列算法和Gumbo指出的安全 消息摘要,这排除了诸如 CRC32 或 MD5 之类的算法以及您的名字之类的 MAC 或生日)并将其存储在服务器端,然后当用户提交回数据时,检查哈希是否匹配。
但要知道这个解决方案不是 100% 安全的。散列函数有冲突,并且存在错误的实现。
我建议坚持黄金法则:如果它不存在,它就不能破坏/被篡改/被盗/等等。
您不能阻止用户这样做。
将这些变量存储在 Session 中。
你永远不能相信客户。验证服务器上的表单以确保数据正常。这意味着检查给定的用户 ID 是否有权发布他们的表单等。
我要去...你不能。您从不信任用户的数据;客户端验证始终只是第一道防线。