我正在使用 Django 1.5、Apache、mod_wsgi 和 python 2.7,debian 托管在 linode 上。
自从我从 django 1.3 升级到 django 1.5 以来,我开始收到一些错误消息,例如:“ERROR (EXTERNAL IP): Internal Server Error: /feed/”。有了这个回溯:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py", line 92, in get_response
response = middleware_method(request)
File "/usr/local/lib/python2.7/dist-packages/django/middleware/common.py", line 57, in process_request
host = request.get_host()
File "/usr/local/lib/python2.7/dist-packages/django/http/request.py", line 72, in get_host
"Invalid HTTP_HOST header (you may need to set ALLOWED_HOSTS): %s" % host)
SuspiciousOperation: Invalid HTTP_HOST header (you may need to set ALLOWED_HOSTS): tadjenanet.montadamoslim.com
但是,几天前,此错误的数量大大增加,并且对于很多我的网站中甚至没有的网址。
我在这里看到了答案(Django 的 SuspiciousOperation 无效的 HTTP_HOST 标头 https://stackoverflow.com/questions/15238506/djangos-suspiciousoperation-invalid-http-host-header)并且我明白为什么我会得到这个,但我需要知道如何避免这种情况,从而提高我的服务器安全性。
基本上,您无法避免攻击者向您发送此类请求。大多数攻击来自自动渗透测试工具,例如元漏洞 http://www.metasploit.com/ or W3AF http://w3af.org/。幸运的是,在 Django 1.5 或更高版本中,这些尝试并不需要担心。为了避免日志泛滥,您可以将 Web 服务器配置为过滤与您的网站域不匹配的 HTTP_HOST 标头。抱歉,我无法帮助您使用 Apache 来完成此操作,如果使用 Nginx,本文可以帮助您http://www.acloudtree.com/how-to-deny-hosts-using-nginx/ http://www.acloudtree.com/how-to-deny-hosts-using-nginx/
Cheers!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)