セキュリティを強化するために使用する必要がある8つのHTTPセキュリティヘッダー
公開: 2022-04-08HTTPセキュリティヘッダーは、Webセキュリティの最も基本的で強力な部分の1つです。 これらのセキュリティ対策の助けを借りて、Webアプリケーションのセキュリティを次のレベルに引き上げることができます。 それはあなたのウェブサイトがおそらく遭遇しなければならないすべての攻撃からあなたのウェブサイトを守ります。
これらのHTTPセキュリティヘッダーは非常に強力であるため、有効にすると、クリックジャッキング、コードインジェクション、クロスサイトスクリプティングなどの一般的な攻撃からWebサイトを保護します。
したがって、この投稿では、HTTPセキュリティヘッダーリスト、それらがどのように有益であるか、およびそれらをどのように実装できるかについてすべて説明します。
しばらくお待ちください。始めましょう。
HTTPセキュリティヘッダーとは何ですか?
基本的に、HTTPセキュリティヘッダーは、HTTP通信のセキュリティ関連の詳細を指定するためにWebブラウザ(または任意のWebクライアント)とWebサーバーの間で交換されるコマンドまたはディレクティブのセットです。 これらの情報の交換または共有は、HTTPプロトコルの一部です。 これらのコマンドまたはディレクティブは、Webサイトのセキュリティを確保し、マルウェアの注入がないようにするために、Webサイトで何を表示できるかまたは何を表示できないかをブラウザーに通知します。
これらのHTTPセキュリティヘッダーコマンドは、ハッカーの攻撃や悪意のあるコードインジェクションなどのセキュリティの脅威からWebブラウザとWebサイトの両方を保護するのに役立ちます。 したがって、このセキュリティ戦略は全体的な防御システムとして機能します。
なぜHTPPセキュリティヘッダーを実装する必要があるのですか?
すでにお気づきのように、ここ数年のサイバー攻撃や情報漏えい事件のピークの増加について、インターネット上で複数の記事やレポートが出回っています。 そして、これらすべての事故の主な原因の1つは、不十分なセキュリティ対策と設定ミスです。
これらのHTTPセキュリティヘッダーは、最も一般的なハッカー攻撃、マルウェアインジェクション、クリックジャッキング、悪意のあるスクリップインジェクションなどの一部を阻止するのに役立ちます。Webアプリケーションがランニング。
利用可能なHTTPヘッダーは数多くありますが、重要なのは、保護を強化するためにどのヘッダーを実装する必要があるかです。 時間の経過とともに変化する他のWebテクノロジーと同様に、ブラウザのサポートに応じて新しいHTTPヘッダーが表示されます。
したがって、実装するHTTPヘッダーと実装しないHTTPヘッダーを決定することが重要になりますが、今のところ、最も一般的な脅威のいくつかから保護できるように、これらの8つのHTTPセキュリティヘッダーリストを実装する必要があります。
それに加えて、HTTPセキュリティヘッダーは、WebサイトのSEOスコアを向上させるのにも役立ちます。
セキュリティヘッダーチェックを実行する
先に進む前に、最初に行う必要があるのは、Webサイトでセキュリティヘッダーチェックを実行することです。 その助けを借りて、あなたはあなたのウェブサイトに欠けている重要なセキュリティヘッダーが何であるかを簡単に見ることができます。
これを行うには、セキュリティヘッダーのWebサイトにアクセスし、次の図に示すようにWebサイトのアドレスを入力する必要があります。

WebサイトのURLを入力して[スキャン]ボタンを押すと、包括的なレポートが生成され、欠落している重要なHTTPセキュリティヘッダーがあればすべて赤色で表示され、Webサイトの安全性を示す成績が表示されます。

上の画像から、HTTPセキュリティヘッダーが検出されていないことがわかります。 これについては、以下のセクションで説明およびリストしました。
最も重要なHTTPセキュリティヘッダーリスト
セキュリティを強化し、保護の追加レイヤーを有効にするためにWebアプリケーションに実装する必要がある最も重要なHTTPセキュリティヘッダーのいくつかを確認してみましょう。
1.Xフレームオプション
マイクロソフトは初めて、Microsoft Internet ExplorerにX-Frameオプションを導入しました。これは、悪意のあるスクリプトインジェクションやクロスサイトスクリプティング攻撃からの保護に役立ちます。 このHTTPセキュリティヘッダーは、ブラウザにiFrameをWebサイトに処理するかどうかを尋ねるように指示することにより、WebサイトのiFrameを保護します。
これは主に、攻撃者がリンクまたはボタンに複数のレイヤーを実装してユーザーを別のページにリダイレクトし、重要な情報を盗むすべてのクリックジャッキング攻撃から保護します。
従う構文:
1 2 3 |
X - Frame - Options : DENY X - Frame - Options : SAMEORIGIN X - Frame - Options : ALLOW - FROM < em > URL < / em > |
指示の説明:
DENY :このディレクティブはiFrameのレンダリングを許可しません
SAMEORIGIN:このディレクティブは、同じ原点でのみiFrameをレンダリングできるようにします。
ALLOW- FROM:このディレクティブは、特定のURLからのみiFrameをレンダリングできるようにします。
2. Strict-Transport-Security
Strict-Transport-SecurityまたはHTTPSStrictTransport Securityヘッダーは、有効になっている場合にMIM攻撃やCookieハイジャックから保護するのに役立ちます。 このディレクティブは、ブラウザーがHTTP通信ではなくHTTPSを使用するように強制します。
HTTPでWebサイトを実行していて、HTTPSでそのWebサイトに移行した場合の仕組みを理解しましょう。 古い訪問者は引き続きHTTPを使用して古いURLにアクセスしようとします。 WebサイトはすでにHTTPSに移行されているため、古いURLによって新しいURLにリダイレクトされます。
ただし、重要なのは、訪問者は、新しい暗号化されたURLにリダイレクトする前に、暗号化されていないバージョンのWebサイトにアクセスできるということです。 プロセスの合間に、ハッカーは中間者攻撃でMIMまたはManを実行する機会を得ます。
ただし、Strict-Transport-Securityを有効にすると、ブラウザはHTTP Webサイトをロードせず、HTTPS経由で通信するようにブラウザに強制するように指示されます。
従う構文:
1 2 3 |
Strict - Transport - Security : max - age = < expire - time > Strict - Transport - Security : max - age = < expire - time > ; includeSubDomains Strict - Transport - Security : max - age = < expire - time > ; preload |
指示の説明
max-age = <expire-time> :このディレクティブを使用すると、ブラウザーがHTTPS経由でアクセスできる時間(秒単位)を決定できます。
max-age = <expire-time>; includeSubDomains :このディレクティブが言及されている場合、上記のルールはWebサイトのすべてのサブドメインにも適用されることを意味します。
max-age = <expire-time>; preload :このディレクティブは、WebサイトがグローバルHTTPSサイトリストにリストされていることを示します。
3.コンテンツセキュリティポリシー
このHTTPセキュリティヘッダーは、ポリシーに記載されているコンテンツのみをロードするようにブラウザに指示します。 これは、Webサイトのリソースを制御し、ホワイトリストに登録したコンテンツリソースのみをブラウザがロードできるようにする権限があることを意味します。
これは、ブラウザがスクリプト、画像、CSSなどのコンテンツリソースをどこからロードするかを決定するのに役立ちます。 このHTTPセキュリティヘッダーを正常に実装できれば、クリックジャッキング、クロスサイトスクリプティング(XSS)、および悪意のあるコードインジェクションからWebサイトを保護できます。
保護を100%保証するわけではありませんが、起こりうる損傷を防ぎ、制限するのに役立ちます。 それでも、大多数のブラウザは現在この深刻な問題を特定し、それをサポートし始めています。
従う構文:
1 |
Content - Security - Policy : < policy - directive > ; < policy - directive > |
指示説明
<policy-directive> : script-src(CSS) 、 img-src(Images)、 style-src (stylesheet)などの任意のポリシーディレクティブを含めて、それらをロードできるようにすることができます。
4.X-content-Type-Options
このタイプのヘッダーを使用すると、サーバーでMIMEタイプが意図的に構成されていることをブラウザーに通知することにより、MIMEタイプのスニッフィングを制限または防止できます。 基本的に、MIMEスニッフィングでは、攻撃者が実行可能な悪意のあるスクリプトを挿入する機会を提供します。
たとえば、攻撃者は、画像などの無実の他のリソースの応答を変更した悪意のあるリソースを注入しました。 MIMEスニッフィングが原因で、ブラウザは、挿入された悪意のあるリソースの実行を開始するのではなく、画像コンテンツタイプのレンダリングを停止します。
このヘッダーを有効にすると、ブラウザはContent-typeヘッダーで指定されたMIMEタイプのみに従うようになります。 このようにして、悪意のあるスクリプトインジェクションやクロスサイトスクリプティング攻撃を簡単に保護および防止できます。
従う構文:
1 |
X - Content - Type - Options : nosniff |
指示の説明:
nosniffディレクティブは、次のタイプのリクエストの宛先である場合、リクエストをすぐにブロックします。
- スタイル
- MIMEタイプはtext/CSSまたはタイプScriptではありません
- MIMEタイプはJavaScriptMIMEタイプではありません
5.リファラーポリシー
このヘッダーセキュリティを使用すると、リファラー情報を公開するかどうかを制御できますか? はいの場合、どのくらい。
ただし、他のリクエストの場合、ブラウザは発信元に関する情報のみを共有します。
従う構文:
1 2 |
Referrer - Policy : origin - when - cross - origin Referrer - Policy : no - referrer - when - downgrade |
指示の説明:
origin-when-cross-origin:ブラウザーは、同じオリジンのリクエストと他のリクエストの完全な参照情報を共有します。ブラウザーは、オリジンについてのみ共有します。
no-referrer-when-downgrade:安全性の低い宛先にリクエストのReferrer
ヘッダーを送信するときに、ブラウザーはリファラー情報を共有しません。
6.機能または権限-ポリシー
このセキュリティヘッダーにより、Webサイトは、ブラウザの特定の機能またはAPIへのアクセスを提供するかどうかを決定できます。 このヘッダーを使用すると、ブラウザ上の任意のアプリケーションの機能を簡単に制御できます。これにより、プライバシーが損なわれ、正当で必要な場合にのみ許可されます。
たとえば、Webサイトがマイク、Webカメラ、または場所にアクセスすることを望まず、以下の構文に従ってそれらの機能を制限したい場合は、次のようになります。
1 2 3 |
Feature - Policy : microphone 'none' ; camera 'none' Feature - Policy : geolocation 'self' ; vibrate 'none' Permissions - Policy : geolocation = ( self ) , vibrate = ( ) |
従うべき構文:
1 |
Feature - Policy : < directive > < allowlist > |
指示の説明:
<ディレクティブ>には、加速度計、自動再生、環境光センサー、バッテリー、カメラ、マイク、ジオロケーションなど、何でもかまいません。

<allowlist>は起点のリストですが、「none」、「self」などの1つ以上の値を個別に取得できます。 参考までに、ここからディレクティブの完全なリストと許可リストを確認できます。
7.X-許可されたクロスドメイン
このHTTPセキュリティヘッダーを使用すると、ブラウザに指示を与え、クロスドメインからのすべてのリクエストを制御できます。 このヘッダーを有効にすると、他のドメインからの不要なWebサイトアセットをロードするようにWebサイトを制限することになります。 ウェブサイトのリソースを効率的に使用できるようにします。
このセキュリティヘッダーはオプションであり、必須ではありませんが、インストールして有効にすることをお勧めします。
従う構文:
1 |
X - Permitted - Cross - Domain - Policies : "none" |
8.XSS保護
XSS保護またはクロスサイトスクリプティング保護ヘッダーは、クロスサイトスクリプティング攻撃から保護するために導入されました。 これらの攻撃は非常に一般的で効果的であると考えられているため、Webブラウザの大部分はデフォルトでXSS保護を有効にしています。
攻撃者がHTTPリクエスト中に悪意のあるJavaScriptコードを挿入して、トランザクションデータや個人データなどの機密情報を盗もうとして、Webサイトに感染しようとすると、クロスサイトスクリプト攻撃が検出されると、XSS保護ヘッダーが除外されて停止します。それらをすぐに。
ただし、このフィルターは古いブラウザーでのみ使用可能であり、最近のブラウザーでは不要になりました。 特に、本当に優れたセキュリティポリシーをすでに実装していて、訪問者がコンテンツセキュリティポリシーを理解していない古いブラウザをまだ使用している場合に備えて、先に進んでそれを実行することをお勧めします。
従う構文:
1 2 3 4 |
X - XSS - Protection : 0 X - XSS - Protection : 1 X - XSS - Protection : 1 ; mode = block X - XSS - Protection : 1 ; report = < reporting - uri > |
説明:
0 –これによりXSS保護が無効になります
1 –XSS保護を有効にする
1; mode = block –クロスサイトスクリプティング攻撃が検出された場合、ブラウザを停止してWebページを完全にロードします。
1; report = <reporting-uri> – XSS攻撃が検出されると、安全でない部分がブラウザによってブロックされ、報告されます
WebサイトにHTTPセキュリティヘッダーの脆弱性修正を実装するにはどうすればよいですか?
Webホスティングサービスプロバイダーが、2つのファイル.htaccessまたはwp-config.phpファイルのいずれかにアクセスすることを許可している場合。 次に、HTTPセキュリティヘッダーをどこにでも追加することで、WebサイトにHTTPセキュリティヘッダーの脆弱性の修正を簡単に実装できます。
WPOvenでは、SSHアクセスを提供します。これにより、ファイルマネージャーに簡単にアクセスし、 .htaccessファイルを編集できます。
ステップ1 :まず、サイトのSSHアクセスを有効にする必要があります。 これを行うには、 WPOvenダッシュボードからサイトにアクセスする必要があります。

[ツール]セクションに移動します。

次に、 [ツール]セクションで、ページの下部にある[ SSHアクセスを有効にする]ボタンを押す必要があります。

ステップ2 :サイトでSSHアクセスが有効になったら、サイトのSFTPログイン資格情報を使用してPuttyやPenguiNetなどのサードパーティアプリケーションを介してログインできます。
ただし、一般にFile Zillaとして知られているFTPクライアントを介して、.htaccessまたはwp-config.phpファイルに直接アクセスすることもできます。
あなたがする必要があるのは、以下に与えられたこれらのステップに従うことだけです:
- まず、FTPクライアントを使用してWordPressWebサイトに接続する必要があります。 これにより、.htaccessファイルを編集できるようになります。 このファイルは、WordPressWebサイトのルートディレクトリにあります。
- .htaccessファイルが表示されない場合は、隠しファイルをチェックインすることをお勧めします。
- 特別なエディタは必要ありません。メモ帳などのテキストエディタでコードを記述できます。
- このコードを記述して、.htaccessファイルに追加する必要があります。 .htaccessファイルの最後に追加することをお勧めします。
- サイトを見つけたら、ローカルドライブにダウンロードして、任意のテキストエディタで開きます。 最も簡単なオプションは、標準のメモ帳です。 ファイルの最後に次のコードを追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
X - Frame - Options : DENY X - Frame - Options : SAMEORIGIN X - Frame - Options : ALLOW - FROM URL Strict - Transport - Security : max - age = < expire - time > Strict - Transport - Security : max - age = < expire - time > ; includeSubDomains Strict - Transport - Security : max - age = < expire - time > ; preload Content - Security - Policy : < policy - directive > ; < policy - directive > X - Content - Type - Options : nosniff Referrer - Policy : origin - when - cross - origin Referrer - Policy : no - referrer - when - downgrade Feature - Policy : < directive > < allowlist > X - Permitted - Cross - Domain - Policies : "none" X - XSS - Protection : 0 X - XSS - Protection : 1 X - XSS - Protection : 1 ; mode = block X - XSS - Protection : 1 ; report = < reporting - uri > |
必要に応じて属性、ディレクティブ、値を変更し、保存してアップロードします。
または、Webサーバー構成ファイルにアクセスして、これらのセキュリティヘッダーを適用することもできます。 ただし、自分で変更を加えたくない場合で、WPOvenクライアントである場合は、サポートチケットを開くことができ、迅速に行うことができます。
概要
上記の投稿から、WebサイトでHTTPセキュリティヘッダーを有効にすることがいかに重要であるかがわかります。 そして、それらがWebサイトのセキュリティ強化をどの程度提供するか。 ただし、これらのセキュリティは、利用可能な最新の高度なブラウザにデフォルトで実装されています。 しかし、それでも、あなたがそれらを使うべきではないと私が見つけた理由はありません。
あなたがあなたのウェブサイトサーバーにアクセスできない場合、あなたはそれが難しいと思います。 専門家に助けを求めることは常に良いことです。 Webホスティングプロバイダーに連絡して、WebサイトにHTTPセキュリティヘッダーを実装するように依頼することをお勧めします。
よくある質問
HTTPヘッダーは安全ですか?
はい、HTTPセキュリティヘッダーは最も重要なサイバーセキュリティ強化ディレクティブの1つです。 HTTPヘッダーの情報全体が暗号化されます。
セキュリティを追加するヘッダーは何ですか?
Webサイトにセキュリティを追加するヘッダーのいくつかは次のとおりです。
1.Xフレームオプション
2. Strict-Transport-Security
3.コンテンツセキュリティポリシー
4.X-content-Type-Options
5.リファラーポリシー
6.機能または権限-ポリシー
7.X-許可されたクロスドメイン
8.XSS保護
CSPヘッダーとは何ですか?
CSPまたはコンテンツセキュリティポリシーヘッダーは、ポリシーに記載されているコンテンツのみをロードするようにブラウザに指示します。 これは、Webサイトのリソースを制御し、ホワイトリストに登録したコンテンツリソースのみをブラウザがロードできるようにする権限があることを意味します。