【问题标题】:Django Invalid HTTP_HOST header: '\x80\xc7\xda\x9e'Django 无效的 HTTP_HOST 标头:'\x80\xc7\xda\x9e'
【发布时间】:2016-07-11 15:32:15
【问题描述】:

我收到来自 Digital Ocean 中托管的 Django 1.7 应用程序的错误。

HTTP_HOST 标头无效:'\x80\xc7\xda\x9e'。根据 RFC 1034/1035,提供的域名无效。

Request repr():
<WSGIRequest
path:/xmlrpc.php,
GET:<QueryDict: {}>,
POST:<QueryDict: {}>,
COOKIES:{},
META:{'HTTP_CONNECTION': 'close',
 'HTTP_HOST': '\x80\xc7\xda\x9e',
 'HTTP_USER_AGENT': 'Mozilla/5.0 (Windows NT x.y; Win64; x64; rv:10.0)Gecko/20100101 Firefox/10.0',
 'HTTP_X_FORWARDED_FOR': '181.214.92.100',
 'PATH_INFO': u'/xmlrpc.php',
 'QUERY_STRING': '',
 'RAW_URI': '/xmlrpc.php',
 'REMOTE_ADDR': '181.214.92.100',
 'REMOTE_PORT': '80',
 'REQUEST_METHOD': 'POST',
 'SCRIPT_NAME': u'',
 'SERVER_NAME': '\x80\xc7\xda\x9e',
 'SERVER_PORT': '80',
 'SERVER_PROTOCOL': 'HTTP/1.0',
 'SERVER_SOFTWARE': 'gunicorn/18.0',
 'gunicorn.socket': <socket._socketobject object at 0x7fb05e3e1280>,
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x7fb0663e01e0>,
 'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at   0x7fb063c1b7a0>,
 'wsgi.input': <gunicorn.http.body.Body object at 0x7fb05e3bf810>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': False,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}>

我在基本文件中设置了 ALLOWED_HOSTS=['*']。此错误的原因是什么,我该如何解决?

【问题讨论】:

    标签: python django digital-ocean


    【解决方案1】:

    看起来有人正在测试您的网络服务是否存在无效请求(主机字段中的字符不允许)。

    这应该已经在网络服务器级别被拒绝,而不是传递给 gunicorn 和 Django。

    这似乎是对 PHP 网站的自动攻击,因此很可能不会伤害您。但是您应该重新配置网络服务器以拒绝这种错误的标头。

    【讨论】:

    • 你能推荐任何教程或链接来处理这些类型的错误(首选nginx)
    • 关于网络服务器配置的问题比 Stack Overflow 更适合放在服务器故障上。你会在那里得到更好的帮助。
    猜你喜欢
    • 2013-02-20
    • 2019-09-29
    • 2014-04-20
    • 2017-03-27
    • 2021-01-20
    • 2013-09-10
    • 1970-01-01
    • 2014-10-11
    相关资源
    最近更新 更多