在PHP中获取请求主机


Get request host in PHP

我正在开发Zend网站。有些人创建了一个html文件来模仿我的登录视图。表单中的动作指向要提交的控制器。我不登录其他网站从我的网站。那么如何防止其他域向我的控制器提交表单呢?我试图获得请求主机名的"请求者页面",比较他们的域名与我的,然后返回错误,如果用户从其他网站登录

查看ZF手册中的CSRF保护,这是解决此问题的标准内置方法。

  1. 你可以检查它是否在你的域(或空)

  2. 添加一个隐藏的输入字段,并在每次显示时生成一个令牌。如果令牌错误,请不要继续,并将其重定向到您的登录页面。确保每个令牌只能由一个用户(相同的会话/ip)使用一次,并且只能使用1小时

编辑:参见https://www.owasp.org/index.php/Cross-Site_Request_Forgery_%28CSRF%29_Prevention_Cheat_Sheet

有一个最简单的方法可以防止外部用户登录到你的网站

  1. 用户使用验证码生成每次登录会话的新代码

你可以使用下面的链接作为参考,使用在登录页面

http://mnshankar.wordpress.com/2010/06/01/zend-form-element-captcha/