1

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

4

3 回答 3

2

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

于 2013-05-02T08:24:01.793 回答
1

有最简单的方法可以防止外部用户登录您的网站

  1. 用户 zend 验证码在每次登录会话时生成新代码

您可以使用以下链接作为登录页面中使用的参考

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

于 2013-05-02T08:29:07.390 回答
1
  1. 您可以检查引用者是否在您的域中(或为空)

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

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

于 2013-05-02T08:17:16.037 回答