From ff6dd0b68a6c6b68b50133c56854df036465274c Mon Sep 17 00:00:00 2001 From: "shimoda.m@nds-tyo.co.jp" Date: Mon, 29 Jan 2024 17:21:31 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20SRI=E3=83=8F=E3=83=83=E3=82=B7=E3=83=A5?= =?UTF-8?q?=E5=80=A4=E3=81=AB=E3=81=A4=E3=81=84=E3=81=A6=E8=A8=98=E8=BF=B0?= =?UTF-8?q?=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ecs/jskult-webapp/README.md | 47 +++++++++++++++++++++++++++---------- 1 file changed, 35 insertions(+), 12 deletions(-) diff --git a/ecs/jskult-webapp/README.md b/ecs/jskult-webapp/README.md index e85ed943..5eda4c73 100644 --- a/ecs/jskult-webapp/README.md +++ b/ecs/jskult-webapp/README.md @@ -196,15 +196,38 @@ - リクエスト到達時にセッションの有無をチェックする - レスポンス時、クッキーにセッションキーを登録する -## ヘッダーにSRI設定・生成方法 -- インポートされたソースに更新したら、SRIのintegrity hashも更新すること - - ソースはローカルにある場合下記の`bash`コマンドでハッシュ生成できる: - ``` - cat FILENAME.js | openssl dgst -sha384 -binary | openssl base64 -A - ``` - - 外部ソース *(リンクから)* 使用する場合は下記のMDNオンラインツールでハッシュ生成できる: - [SRI Hash Generator](https://www.srihash.org/) - - SRIサンプル: - ``` - - ``` +## HTMLで読み込んでいるスクリプトのSRIハッシュ値を生成・設定する方法 + +### サブリソース完全性 (Subresource Integrity, SRI) とは + +CDN などから取得したリソースが意図せず改ざんされていないかをブラウザーが検証するセキュリティ機能です。 SRI を利用する際には、取得したリソースのハッシュ値と一致すべきハッシュ値を指定します。 + +詳細: + +実消化&アルトマークのWebアプリケーションでは、複数の外部スクリプトを読み込んで動作しているため、読み込むスクリプトを変更した場合は、 +タグの属性値`integrity`に設定されているスクリプトのハッシュ値を更新する必要がある。 + +### SRI ハッシュ値の生成方法(サーバー内のスクリプトについて) + +- サーバー内に保管されているスクリプトを更新した場合、Linux環境(WSL2でも可)で、以下のコマンドを実行し、ハッシュ値を生成する + +```bash +cat <更新したスクリプトファイル名> | openssl dgst -sha384 -binary | openssl base64 -A +``` + +参考: + + +### SRI ハッシュ値の生成方法(外部サイトから読み込んでいるスクリプトについて) + +- 外部サイトから読み込んでいるスクリプトを更新した場合、下記のMDNオンラインツールでハッシュ値を生成する + - [SRI Hash Generator](https://www.srihash.org/) + +### SRI ハッシュ値の設定方法 + +- 更新したスクリプトを読み込んでいる箇所の`integrity`属性値を、生成したハッシュ値に置き換える +- 以下は設定のサンプル + +```bash + +```