我从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个问题:
如何配置Django以记录开发者的真实IP来源,即REMOTE_ADDR而不是localhost ip。
有没有办法拒绝使用假引用的请求?请求和引用的URL当然不是我自己的example.com网站上的有效链接,从未出现过。
由于
答案 0 :(得分:0)
我想出了自己的问题,以防其他人需要这些信息,这里就是......
我一直在错误邮件中获取localhost ip,因为我的django服务器位于同一台机器上的反向代理之后。在这种情况下,REMOTE_ADDR
始终是本地主机地址。
没有模板或自定义错误报告机制将其他变量放入损坏的链接电子邮件中,因为电子邮件是在django的CommonMiddleware
中硬编码的。之前评论中提到的自定义错误报告与此无关。
因此,为了获得真正的IP地址,我编写了一个中间件来用REMOTE_ADDR
替换HTTP_X_FORWARDED_FOR
。据说存在一个安全问题,因为HTTP_X_FORWARDED_FOR
可以轻易伪造,但是如果没有CommonMiddleWare补丁实际包含两个ip变量,那就可以做到。