知識ベース

サブリソースの整合性

サブリソースの整合性またはSRIは、Webサイト配信を保護する方法を提供するW3C勧告です。具体的には、コンテンツ配信ネットワーク(CDN)などのサードパーティが提供するアセットを検証します。これにより、これらの資産が悪意のある目的で侵害されず、CDNが提供するコンテンツに悪意のあるコードが注入され、それを使用する数千のWebサイトが侵害される多くの攻撃に対応して作成されます。

SRIを使用するために、サードパーティからのリソースを含めることを希望するWebサイト作成者は、リソースの場所に加えて、リソースの暗号化ハッシュを指定できます。リソースを取得するブラウザは、Webサイトの作成者から提供されたハッシュとリソースから計算されたハッシュを比較できます。ハッシュが一致しない場合、リソースは破棄されます。

2018年5月現在、SRIはMicrosoft Edge、Firefox、Safari、Google Chrome、Operaでサポートされています。

SRIで使用される整合性属性を持つサンプルスクリプト要素:

script src = "https://cdn.example.com/app.js" integrity = "sha384-+ / M6kredJcxdsqkczBUjMLvqyHb1K / JThDXWsBVxMEeZHEaMKEOEct339VItX1zB">