用PHP获取请求主机

时间:2013-05-02 08:11:24

标签: php zend-framework cross-domain hostname

我正在开发Zend的网站。 有些人创建了一个模仿我登录视图的html文件。表单中的操作指向我的控制器提交。 我没有从我的网站登陆其他网站。那么如何防止其他域名提交给我的控制器呢? 我试图获取请求主机名“请求者页面”以将他们的域名与我的域名进行比较,如果用户从其他站点登录则返回错误。

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

  1. 您可以检查refferer是否在您的域中(或为空)

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

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

答案 2 :(得分:1)

最简单的方法是防止旁边用户登录您的网站

  1. 用户zend验证码,每当新代码登录会话时生成
  2. 您可以使用以下链接作为参考在登录页面中使用

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