防止远程站点的POST

时间:2011-03-19 18:15:49

标签: forms .htaccess post security

我只是想知道你是如何阻止人们试图欺骗你的脚本的?从远程网站发布一个类似的外观..比如说试试&将额外的值添加到您没有的选择字段或其他类型的字段中。

2 个答案:

答案 0 :(得分:3)

要防止Cross-Site Request Forgery (CSRF),您应该使用所谓的CSRF令牌来验证请求的真实性。此外,您可以检查HTTP Referer ,并且仅在事务为空(不存在)或您的​​某个地址时才允许该事务。

有关详细信息,另请参阅OWASP’s Cross-Site Request Forgery (CSRF) Prevention Cheat Sheet

答案 1 :(得分:1)

最好的想法是创建一个从用户代理,ip和时间框架生成的md5密钥。然后将其存储在数据库中并在隐藏文本字段中填充,以便提交,您可以重新验证该值。

您还可以使用$ _SERVER [' HTTP_REFERER']获取请求来自并根据您网站的网址进行验证。请记住,这是由用户Web浏览器设置的,因此可能会被欺骗。以下是可用的$ _SERVER变量及其描述的列表。 http://www.php.net/manual/en/reserved.variables.server.php