[解決済み] Django の SuspiciousOperation 無効な HTTP_HOST ヘッダ
2022-11-19 12:14:54
質問
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']
を設定しました。
ここで何が起こっているのでしょうか?誰かがGoogleのふりをして、私のサイトにアクセスしているのでしょうか?それとも、誰かが HTTP_HOST ヘッダを間違って設定したことによる良性のケースなのでしょうか?
どのように解決するのですか?
もし、あなたの
ALLOWED_HOSTS
が正しく設定されている場合、誰かがこのヘッダを偽装して、あなたのサイトの脆弱性を探っている可能性があります。
現在、Django の開発者によって、これを 500 の内部サーバエラーから 400 のレスポンスに変更することが議論されています。以下を参照してください。 このチケット .
関連
-
[解決済み] Django の管理者パスワードをリセットする方法は?
-
[解決済み] Django のカスタムフィールドで User モデルを拡張する
-
[解決済み] Django のフォームで、あるフィールドを編集できないように readonly (または disabled) にするにはどうしたらいいですか?
-
[解決済み] Djangoのテンプレートからsettings.pyの定数にアクセスすることは可能ですか?
-
[解決済み] [Solved] カスタムDjango manage.pyコマンドをテストドライバから直接呼び出すにはどうしたらいいですか?
-
[解決済み] Django REST Framework: ModelSerializerに追加フィールドを追加する
-
[解決済み] Djangoのvalues()の項目名を変更する方法は?
-
[解決済み] Django: テンプレート内からセッション変数にアクセスする?
-
[解決済み] Django Forms: 有効でない場合、エラーメッセージとともにフォームを表示する
-
[解決済み] django テンプレートで "ブロック" を繰り返す方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
オペレーショナルエラーです。1050 解決
-
6.5、Django - モデルでJSONFieldを使用してJSONフィールドでMySQLテーブルを作成する
-
Django。"makemigrations "時に変更が検出されない。
-
[解決済み] Django のビューで 2 つ以上のクエリセットを結合するにはどうすればよいですか?
-
[解決済み] Django の管理者パスワードをリセットする方法は?
-
[解決済み] Django で完全な/絶対的な URL (ドメイン付き) を取得するにはどうすればよいですか?
-
[解決済み] Django の修正 管理者の複数形
-
[解決済み] Djangoテンプレート内でコレクションのサイズを確認するにはどうすればよいですか?
-
[解決済み] django のクラスベースのビューで permission_required デコレータを使用する方法
-
[解決済み] Django の {% url %} テンプレートタグでクエリパラメータを渡すことは可能でしょうか?