サウウェブ

B'z、映画、海外ドラマ、スケボーネタバレニュースまとめ

WEB

コンテンツセキュリティポリシー(CSP)などのhttpヘッダーの.htaccess記述方法

ノートPC プログラム コード コーディング セキュリティ ディスプレイ

.htaccessでコンテンツセキュリティポリシーなどのセキュリティに関するに記述するhttpヘッダーの書き方をまとめました。あとで見返せるようにメモを残しておきます。

httpsへのリダイレクトの記述はこちら

スポンサーリンク

.htaccessの記述

コンテンツセキュリティポリシーの他にX-Content-Typeやキャッシュなどの記述も足しました。

Content-Security-Policy

Header set Content-Security-Policy "default-src * 'unsafe-eval' 'unsafe-inline' gap://ready file:; style-src 'self' 'unsafe-inline'; media-src *; img-src * 'self' filesystem: data: blob:;"

CSPを記述することで、コンテンツの提供元や取得方法を制限して、意図しないコンテンツを読み込ませることを阻止することができます。

ほんとは一つ一つアナリティクスなどのスクリプトや画像の読み込んでいる場所を許可していくのがいいんだけれど、今回は「"default-src *」と記載して、デフォルトですべて許可しています。

すべて許可しているのでGoogleアナリティクスやjqueryの読み込みも正しく動作します。

 

Strict-Transport-Security

Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

HTTP Strict Transport Security(HSTS)は、HTTP の代わりHTTPSを用いて通信を行うよう、Webサイトからブラウザに伝達するためのセキュリティ機能です。
そのStrict Transport Security の有効化の記述です。

書いていなくても全く問題ないし、httpsにリダイレクトさせる記述書いた方が意味あると思うけど、一応書き方は下記になります。

httpsにリダイレクトさせる記述はこちら

 

X-Content-Type-Options

Header set X-Content-Type-Options "nosniff"

画像ファイルやテキストファイルをHTMLと判定してしまい、クロスサイトスクリプティングが発生する不具合を回避するために記述です。
IE対策です。

 

Cache-Control

Header set Cache-Control "max-age=604800, public"

キャッシュの有効期限とかの設定。
これについては画像のキャッシュなどもっと書いた方がいいけど、クライアントからの HTTP 要求で使用される可能性がある、標準的な Cache-Control ディレクティブだけ。

 

まとめ

全てまとめるとこんな記述

Header set Content-Security-Policy "default-src * 'unsafe-eval' 'unsafe-inline' gap://ready file:; style-src 'self' 'unsafe-inline'; media-src *; img-src * 'self' filesystem: data: blob:;"
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Header set X-Content-Type-Options "nosniff"
Header set Cache-Control "max-age=604800, public"

CSPに関してはズブズブのセキュリティだけど、一つ一つ調べて行くのは面倒で手間なので、一応記述しておくだけなら上記のコードをコピペでOKです。

-WEB

Optimized with PageSpeed Ninja