我不断收到一个Invalid HOST Header
错误,我试图找到原因。其内容如下:
Report at /GponForm/diag_Form
Invalid HTTP_HOST header: '192.168.0.1:443'. You may need to add '192.168.0.1' to ALLOWED_HOSTS
我不知道/GponForm/diag_Form
是什么,但从外观上看,它可能是一个受恶意软件攻击的漏洞。
我还想知道为什么IP来自路由器192.168.0.1
以及为什么它通过SSL:443
我应该考虑放置一个蜜罐并阻止这个IP地址吗?在我这样做之前,为什么IP看起来像本地路由器?
报告中的完整Request URL
如下所示:
Request URL: https://192.168.0.1:443/GponForm/diag_Form?style/
我现在至少收到此错误~10x/天,所以我想停止它。
是的,这肯定代表了一个漏洞 - 有人试图在路由器上访问此 URL(通常具有 IP192.168.0.1
(。
之所以如此,是因为来自攻击者的请求包含具有此值HOST
标头。
也许 django 是用DEBUG=True
在本地运行的。
您可以考虑使用Web服务器(即nginx
(前面使用 nginx config 过滤不需要的请求,并进一步添加fail2ban
来解析 nginx 错误日志和禁止 IP。
或者使网站仅从特定的IP/广告简单授权可用,即网络服务器级别的基本身份验证。
以前不相关的答案
ALLOWED_HOSTS选项指定了 Django 项目可以服务的域。
在本地运行时 -python manage.py runserver
或与DEBUG=True
一起运行 - 它默认为localhost
、127.0.0.1
和类似。
如果你通过不同的网址访问 django - 它会以这种方式抱怨。
要允许从其他域访问 - 将它们添加到ALLOWED_HOSTS
:ALLOWED_HOSTS = ['localhost', '127.0.0.1', '[::1]', '192.168.0.1']
。