当前位置: 首页 > 面试题库 >

Django的SuspiciousOperation无效的HTTP_HOST标头

文志学
2023-03-14
问题内容

升级到Django 1.5后,我开始出现如下错误:

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): www.google.com

<WSGIRequest
path:/,
GET:<QueryDict: {}>,
POST:<QueryDict: {}>,
COOKIES:{},
META:{'CONTENT_LENGTH': '',
'CONTENT_TYPE': '',
'DOCUMENT_ROOT': '/etc/nginx/html',
'HTTP_ACCEPT': 'text/html',
'HTTP_HOST': 'www.google.com',
'HTTP_PROXY_CONNECTION': 'close',
'HTTP_USER_AGENT': 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)',
'PATH_INFO': u'/',
'QUERY_STRING': '',
'REMOTE_ADDR': '210.245.91.104',
'REMOTE_PORT': '49347',
'REQUEST_METHOD': 'GET',
'REQUEST_URI': '/',
u'SCRIPT_NAME': u'',
'SERVER_NAME': 'www.derekkwok.net',
'SERVER_PORT': '80',
'SERVER_PROTOCOL': 'HTTP/1.0',
'uwsgi.node': 'derekkwok',
'uwsgi.version': '1.4.4',
'wsgi.errors': <open file 'wsgi_errors', mode 'w' at 0xb6d99c28>,
'wsgi.file_wrapper': <built-in function uwsgi_sendfile>,
'wsgi.input': <uwsgi._Input object at 0x953e698>,
'wsgi.multiprocess': True,
'wsgi.multithread': False,
'wsgi.run_once': False,
'wsgi.url_scheme': 'http',
'wsgi.version': (1, 0)}>

我已经ALLOWED_HOSTS = ['.derekkwok.net']settings.py文件中进行了设置。

这里发生了什么?有人假装成为Google并访问我的网站吗?还是有人错误地设置其HTTP_HOST标头的良性案例?


问题答案:

如果你ALLOWED_HOSTS的设置正确,则可能有人通过欺骗标头来探测你的站点是否存在漏洞。

Django开发人员正在讨论将其从500内部服务器错误更改为400响应



 类似资料:
  • 问题内容: 最近,我将我的django网站之一从http升级到https。但是,此后,我不断收到错误的电子邮件,而从未收到此类电子邮件。 以下是一些日志消息: [Django]错误(外部IP):无效的HTTP_HOST标头:“ 123.56.221.107”。您可能需要将‘123.56.221.107’添加到ALLOWED_HOSTS。 [Django]错误(外部IP):无效的HTTP_HOST标

  • 我正在尝试运行一个django代码,一个我做的imx6 yocto构建。这个基本的例子做得很好很顺利。所以我决定在我工作的一个项目中运行我自己的django制作,我得到了以下结果: models.py中的代码如下: 我尝试将‘改为’删除{self.cloud_interval},但都没有成功。 为什么会发生这种情况?如何修复它?

  • 问题内容: 我有一个从朋友那里收到的Django小项目。该代码可以在他的系统上完美运行。但是,在我的系统上,运行服务器时收到以下错误消息: /的TemplateSyntaxError ‘current_tags’不是有效的标签库:找不到模板库current_tags,尝试过django.templatetags.current_tags 问题出在html文件中的一行: 此完全相同的代码可在他的系统

  • 请任何人帮助我摆脱它。

  • 我想在我的网站上打开我的预订表单页面,但我出现了这个错误: 下面是我的代码:

  • 问题内容: 我的节点: 这是我的: 运行成功并且Redis / Nginx安装正确,但是节点实例抛出此错误: 我到处搜索,似乎找不到有效的解决方案。我尝试使用常规设置url:,特别是install 和使用图像。 我已经读到,当人们尝试在OS X(我的OS)上构建了Linux env之后使用bcrypt时,会发生这种情况,但是我认为这不是问题,因为我正在使用docker和boot2docker。 问