LoginSignup
3
2

More than 5 years have passed since last update.

nginxの設定ミスで起こるリファラの検証不備

Last updated at Posted at 2018-06-09

はじめに

この記事は下記リンクの日本語翻訳記事です

翻訳が誤っている場合はコメントか@no1zy_secまでお知らせいただけると幸いです。

[valid_referers] none in valid_referers

ngx_http_referer_moduleモジュールは誤ったRefererヘッダの値でのクエストによるサービスへのアクセスをブロックすることができます。多くの場合はX-Frame-Optionsヘッダ(クリックジャッキングからの保護)の設定が使用されますが、それ以外の場合もあります。

このモジュールの設定に関する典型的な問題

  • server_nameディレクティブでの不正なサーバー名の使用
  • 広範囲すぎる、または不正確な正規表現
  • noneの使用

noneがダメな理由

ドキュメントによると

the “Referer” field is missing in the request header;

訳:
リクエストヘッダにRefererフィールドが無い

しかし、任意のリソースはユーザーのブラウザからRefererヘッダなしでリクエストできることを覚えておくことが重要です。
例えば:

  • HTTPSからHTTPへのリダイレクトの場合
  • Referer Policyを設定する
  • 不透明なoriginを持つリクエスト
    • data:スキームなど

したがって、有効なrefererとしてnoneを使用すると、任意のrefererのバリデーションが無効になります。

関連リンク

nginxの設定ミスで起こるHTTP Splitting
nginxの設定ミスで起こるSSRF
nginxの設定ミスで起こるパス トラバーサル
nginxの設定ミスで起こるMultiline response headers
nginxの設定ミスで起こるレスポンスヘッダの出力不備
nginxの設定ミスで起こるreferer/origin検証の問題
nginxの設定ミスで起こるHostヘッダフォージェリ

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2