我对PHP有点新,我养成了创建处理所有表单处理的特定文件的习惯。 例如,我有一个显示实际表单的PHP文件,例如,我们将其称为“registration.php”,并将其指定为“registration-process.php”。用户填写registration.php上的注册表单,点击提交,并将数据发布到registration-process.php,因为它已被表单指定为操作文件。
现在我的问题是:不知道他们在不通过registration.php的情况下知道他们正在将数据发送到registration-process.php的人吗?这可能会带来意想不到的后果。
有没有办法确保registration-process.php只接受来自registration.php的POSTed数据?就像一个隐藏字段,其值通过一些PHP代码加密,并且该值由registration-process.php文件检查?但是,我不知道该怎么做,或者这甚至是最好的解决方案。
答案 0 :(得分:0)
是的,使用隐藏的"安全令牌"字段是验证表单整合的常用方法。许多公共论坛都在使用这种方法。
尝试使用Google php form security token
或查看此网站:
答案 1 :(得分:0)
您是否只能接受来自一个位置的POST数据?这是值得的,可能不是。
只要您正确验证表单字段(确保您所获得的内容属于您所期望的范围),就不会有任何负面影响,因此任何事情都可以发布到它。
另外,从技术上讲,你可以将POST数据发送到网络上的任何文件,它只取决于文件对它的作用,无论它是否意味着什么。
此外,Mario Werner所说的是CSRF代币。这不会阻止其他事情发布到您的网站,它只是增加了一定程度的安全性,以确保请求来自正确的地方。有关详细说明,请参阅:http://en.wikipedia.org/wiki/Cross-site_request_forgery