Django 如何从网站利用错误消息获取更多信息
我从django网站上收到了很多这样的错误电子邮件。它们看起来像是被某种自动攻击触发的。这里有一个例子Django 如何从网站利用错误消息获取更多信息,django,django-urls,django-errors,django-email,Django,Django Urls,Django Errors,Django Email,我从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) I
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
请帮我回答两个问题:
谢谢我解决了我自己的问题,所以如果其他人需要此信息,请点击这里 我一直在错误电子邮件中获取本地主机ip,因为我的django服务器位于同一台机器上的反向代理之后。在这种情况下,
REMOTE\u ADDR
始终是本地主机地址
没有模板或自定义错误报告机制将其他变量放入断开链接的电子邮件中,因为该电子邮件是在django的CommonMiddleware
中硬编码的。前面评论中提到的自定义错误报告与此无关
因此,为了获得真正的ip地址,我编写了一个中间件,用
HTTP\u X\u FORWARDED\u FOR
替换REMOTE\u ADDR
。由于的HTTP\u X\u FORWARDED\u很容易伪造,因此可能会涉及到安全问题,但如果没有一个公共中间件补丁来实际包含这两个ip变量,那么这就是可以做到的。至少对于1,您所问的是可能的;Django的HttpRequest
是一个包含所有可用HTTP头的字典,可以包含远程地址,并且可以创建。但我想知道你真正想要的是不是一个应用防火墙(比如mod_security或naxsi)来阻止自动攻击。谢谢你给我指出mod_security和naxsi。如果你愿意用一个自定义错误报告的例子来回答你的评论(对于其他在这个问题上遇到困难的人),我很乐意接受它作为回答。再次感谢。