安全でないHTTPメソッド

問題

  • HEAD, OPTIONS, TRACE のようなHTTPメソッドは、XST、CSRF、機密情報の窃盗などの攻撃に使用できるアプリケーションに関する情報を提供するかもしれません。
    安全でない/不要なhttpメソッドを無効にするにはどうすればよいですか?

  • SECURE属性を有効にして、暗号化されていないチャネルでクッキーを送信することを許可しないようにするにはどうすればよいですか?

環境

  • Liferay DXP 7.1+

解決

  • OPTIONS、HEAD、TRACEなどの安全でない、または不要なHTTPメソッドを無効にするには、Webサーバーでこれらのメソッドへのアクセスを制限するように設定します。 正確な手順は、お使いのWebサーバーによって異なる場合があります。 ここでは、一般的なWebサーバーであるApacheとNginxについて説明します:

    Apacheで安全でないHTTPメソッドを無効にする:
    テキストエディタでApacheの設定ファイル(httpd.confまたはapache2.confなど)を開きます。
    ファイルに以下の行を追加します:

    <Directory "/path/to/your/web/root"> <LimitExcept GET POST> Order deny,allow Deny from all </LimitExcept> </Directory>

    「/path/to/your/web/root」をWebルートディレクトリへの実際のパスで置き換えます。
    設定ファイルへの変更を保存します。
    変更を適用するには、Apache を再起動します。
    この設定により、GETとPOST以外のすべてのHTTPメソッドへのアクセスが拒否され、OPTIONS、HEAD、TRACE、およびその他のメソッドが効果的に無効になります。

    Nginxで安全でないHTTPメソッドを無効にする:
    テキストエディタでNginxの設定ファイル(例:nginx.conf)を開きます。
    http」ブロックの中に以下の行を追加します:

    location / { if ($request_method !~ ^(GET|POST)$) { return 405; }.# ... その他の設定ディレクティブ }.

    設定ファイルに変更内容を保存します。
    Nginxを再起動して、変更内容を適用します。
    本設定では、GETおよびPOST以外のHTTPメソッドに対して405(Method Not Allowed)レスポンスを返し、OPTIONS、HEAD、TRACEなどのメソッドを効果的に無効化します。
    安全でないHTTPメソッドへのアクセスを拒否するようにWebサーバーを設定することで、Cross-Site Tracing(XST)やCross-Site Request Forgery(CSRF)など、これらのメソッドに関する脆弱性を突いた攻撃から保護できます。

  • SECURE属性は、クッキーが暗号化された(HTTPS)接続でのみ送信され、暗号化されていない(HTTP)チャネルでは送信されないことを保証します。
    これをtrueに設定すると、ユーザーがポータルにログインしたときにセッションを無効にすることができます。 フィッシングの防止に役立ちます。 ゲストユーザーと認証ユーザーが同じセッションを持つ必要がある場合は、これをfalseに設定します。
    プロパティ "company.security.auth.requires.https" が true に設定されており、HTTP と HTTPS のセッションで同じ認証情報を維持したい場合、これを false に設定します。
    Env:LIFERAY_SESSION_PERIOD_ENABLE_PERIOD_PHISHING_PERIOD_PROTECTION
    デフォルト:
    session.enable.phishing.protection=true
  1.  

追加情報

この記事は役に立ちましたか?
1人中1人がこの記事が役に立ったと言っています