2,793 view

WordPressで高度なセキュリティ対策(HTTPヘッダーの.htaccess記述例)

WordPressで高度なセキュリティ対策(HTTPヘッダーの.htaccess記述例) 公開日:2021/06/23
この記事のURLとタイトルをコピーする
目次 [ひらく ▼]

Cache-Control(キャッシュコントロール)

Cache-Controlとは、ブラウザーのキャッシュ動作を管理するHTTPヘッダーのことです。
Cacheとは、訪問した「ウェブページの情報」を一時的に保存する仕組みのことです。

キャッシュの期限を7日間とした場合

キャッシュを無効化したい場合

キャッシュを無効化したい場合(HTMLへ記述例)

<meta>タグでも、ブラウザキャッシュの無効化が可能です。<head>~</head>タグ内へ記述します。
※しかしながら、キャッシュサーバのキャッシュを使用してしまう可能性が残ります。

Content-Security-Policy(コンテントセキュリティポリシー)

Content-Security-Policy(CSP)レスポンスヘッダーとは、対応ブラウザの挙動をWebサイト管理者が制御できるようにするセキュリティの仕組みです。
CSPを記述することで、コンテンツ提供元や取得方法を制限し、意図しないコンテンツを読み込ませることを阻止することができます。

デフォルトですべて許可とする場合

アナリティクスなどのスクリプトや、画像の読み込み場所を一つ一つ許可するのが最適解です。
今回は「”default-src *」と記載し、デフォルトですべて許可します。
すべて許可しているのでグーグルアナリティクスや、jqueryの読み込みは問題なく動作します。

Strict-Transport-Security(ストリクトトランスポートセキュリティ)

HTTP Strict Transport Security(HSTS)レスポンスヘッダーとは、HTTP の代わりHTTPSを用いて通信を行うよう、Webサイトからブラウザに伝達するためのセキュリティ機能です。
Strict Transport Security を有効化したい場合、追加します。

X-Content-Type-Options(エックスコンテントタイプオプションズ)

X-Content-Type-Options レスポンスヘッダーとは、画像やテキストファイルをHTMLと判定してしまい、クロスサイトスクリプティングの発生による不具合を回避する記述です。こちらはIE対策です。

X-XSS-Protection(エックスエックスエスエスプロテクション)

X-XSS-Protection レスポンスヘッダーとは、 IE、Chrome、Safariの機能で、反射型クロスサイトスクリプティング (XSS) 攻撃を検出したときに、ページの読み込みを停止するためのものです。

XSS攻撃を見つけたらその読み込みをブロックする場合

廃止されたヘッダ

これらの実装は現在(2021年6月23日)廃止されております。
制限が多く、一貫性もなく、多数のバグが含まれるので使用してはいけません。

X-Content-Security-Policy

Content-Security-Policyは、X-Content-Security-Policyでした。

X-Webkit-CSP

Content-Security-Policyは、X-Webkit-CSPでした。

HTTPレスポンスヘッダーの確認方法

HTTPレスポンスヘッダーの確認方法は、ブラウザで確認する方法は下記3つあります。

ブラウザで確認する方法

Chrome

右クリック「検証」を選択し、開発者ツールを開きます。
「Network」タブを選び、リクエストをみたいソースを選択します。
そして「Headers」を選ぶと、Request Headersを確認することができます。

Chromeには、HTTPヘッダー情報を表示させることができる拡張機能「Live HTTP Headers」があります。

Firefox

右クリック「調査」を選択し、開発者ツールを開きます。
「ネットワーク」タブを選びます。リクエストをみたいソースを選択します。
そして「ヘッダー」を選ぶと、Request Headersを確認することができます。

Firefoxには、HTTPヘッダー情報を表示させることができる拡張機能「HTTP Header Live」があります。
視覚的に見やすくおすすめです。使い方も簡単でインストールし、アイコンをクリックするのみです。

HTTP Header Live

コマンドで確認する方法

curlコマンド

curlコマンドを使用すると簡単に確認できます。Macではcurlコマンドを初期で使用できます。
ターミナルへ、下記を入力し、バージョン表示されれば使用可能です。

バージョン表示されない際、インストールが必要です。
参考:curlをWindows10にインストールする

以下のコマンドを入力し、情報を取得します。

サイトアドレスの部分を確認したいURLに書き換えて実行すると表示されます。

WEBツールで確認する方法

HTTPレスポンスヘッダー確認ツール

まとめ

一応記述しておくレベルの場合、下記のコードをコピペでOKです。

この記事のURLとタイトルをコピーする
TOP