0

我从我的 django 网站收到了很多这样的错误邮件。它们看起来像是由一些自动漏洞触发的。这是一个例子。

Referrer: http://example.com/fck/editor/filemanager/upload/test.html
Requested URL: /fck/editor/filemanager/upload/test.html
User agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Win 9x 4.90)
IP address: 127.0.0.1

请帮我回答2个问题:

  1. 如何配置 Django 以记录利用者的真实 ip 来源,即 REMOTE_ADDR 而不是 localhost ip。

  2. 有没有办法拒绝虚假推荐人的请求?请求和引用的 URL 肯定不是来自我自己的 example.com 站点的有效链接,而且从来没有。

谢谢

4

1 回答 1

0

我发现了我自己的问题,所以如果其他人需要这个信息,这里就...

我一直在错误电子邮件中获取 localhost ip,因为我的 django 服务器位于同一台机器上的反向代理后面。在这种情况下REMOTE_ADDR,始终是 localhost 地址。

没有模板或自定义错误报告机制可以将其他变量放入断开的链接电子邮件中,因为电子邮件是在 django 中硬编码的CommonMiddleware。以前的评论中提到的自定义错误报告与此无关。

所以为了得到真实的ip地址,我写了一个中间件来REMOTE_ADDR代替HTTP_X_FORWARDED_FOR. 假设存在一个安全问题,因为HTTP_X_FORWARDED_FOR可以很容易地伪造,但如果没有 CommonMiddleWare 补丁来实际包含两个 ip 变量,就可以做到这一点。

于 2013-04-19T02:15:39.903 回答