web-dev-qa-db-ja.com

HTMLの整合性属性の目的は何ですか?

私はブートストラップのサイトにいましたが、最近、CDNリンクにSHA-384キーの整合性属性が含まれていることに気付きました。

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>

これはスクリプトソースを検証する方法だと思いますが、それがどのように使用されているのか、これが仕様の一部であるのかどうか疑問に思っていました。

さらに、これはスクリプトsrcでのみ機能しますか、それとも同一生成元以外のソースで機能しますか?

10
Emma Ramirez

これをチェックして :

https://developer.mozilla.org/en/docs/Web/HTML/Element/script

コンテンツ配信ネットワーク(CDN)を使用して、複数のサイト間で共有されるスクリプトやスタイルシートなどのファイルをホストすると、サイトのパフォーマンスが向上し、帯域幅を節約できます。ただし、CDNを使用すると、攻撃者がCDNの制御を取得した場合、攻撃者がCDN上のファイルに任意の悪意のあるコンテンツを挿入する(またはファイルを完全に置き換える)可能性があるため、フェッチするすべてのサイトを攻撃する可能性があるというリスクも伴います。そのCDNからのファイル。

サブリソースの整合性機能を使用すると、サードパーティが追加のコンテンツを挿入することなく、WebアプリケーションまたはWebドキュメントが(CDNまたは任意の場所から)フェッチするファイルが確実に配信されるようにすることで、このような攻撃のリスクを軽減できます。ファイル—そしてそれらのファイルに他のいかなる種類の変更もまったく加えられていません。

詳細はこちら:

https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity

12
Dray

コンテンツ配信ネットワーク(CDN)を使用して、複数のサイト間で共有されるスクリプトやスタイルシートなどのファイルをホストすると、サイトのパフォーマンスが向上し、帯域幅を節約できます。ただし、CDNを使用すると、攻撃者がCDNの制御を取得した場合、攻撃者がCDN上のファイルに任意の悪意のあるコンテンツを挿入する(またはファイルを完全に置き換える)可能性があるため、フェッチするすべてのサイトを攻撃する可能性があるというリスクも伴います。そのCDNからのファイル。

サブリソースの整合性機能を使用すると、サードパーティが追加のコンテンツを挿入することなく、WebアプリケーションまたはWebドキュメントが(CDNまたは任意の場所から)フェッチするファイルが確実に配信されるようにすることで、このような攻撃のリスクを軽減できます。ファイル—そしてそれらのファイルに他のいかなる種類の変更もまったく加えられていません。

サブリソースIntegrityEDITの使用
サブリソース整合性機能を使用するには、ブラウザにフェッチするように指示するリソース(ファイル)のbase64エンコード暗号化ハッシュを、任意の<script>または<link>要素の整合性属性の値で指定します。

整合性の値は、少なくとも1つの文字列で始まり、各文字列には特定のハッシュアルゴリズムを示すプレフィックス(現在許可されているプレフィックスはsha256、sha384、sha512)が含まれ、その後にダッシュが続き、実際のbase64でエンコードされたハッシュで終わります。

整合性値には、空白で区切られた複数のハッシュが含まれる場合があります。これらのハッシュの1つと一致する場合、リソースがロードされます。
base64でエンコードされたsha384ハッシュを使用した整合性文字列の例:

sha384-oqVuAfXRKap7fdgcCY5uykM6 + R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC
整合性値の「ハッシュ」部分は、厳密に言えば、特定のハッシュ関数を特定の入力(スクリプトやスタイルシートファイルなど)に適用することによって形成される暗号化ダイジェストです。ただし、暗号化ダイジェストを意味するために短縮ハッシュを使用するのが一般的であるため、この記事ではそれを使用します。

詳細情報: リンク

0
Tanmay

サブリソースの整合性は、ユーザーエージェントが、フェッチされたリソースが予期しない操作なしに配信されたことを確認できるメカニズムを定義します 参照

整合性属性は、ブラウザがファイルソースをチェックして、ソースが操作された場合にコードがロードされないことを確認できるようにすることです。

Crossorigin属性は、リクエストが「CORS」を使用してロードされたときに存在します。これは、「same-Origin」からロードされていない場合のSRIチェックの要件になりました。クロスオリジンの詳細

Bootstrap CDNの実装の詳細は ここ

0
Imran Ahmad