Javascriptはセキュリティ検証に整合性属性を使用します

Javascriptはセキュリティ検証に整合性属性を使用します

1. スクリプトタグを使用してファイルをインポートする

htmlでは、 scriptタグはsrc属性を通じて js ファイルをインポートできます。インポートされる js ファイルはローカルでもリモートでもかまいません。

1. ローカルファイルをインポートする

開発環境では通常、ローカルのjsファイルが導入されます。

<script src="./js/index.js"></script>


2. リモートファイルをインポートする

オンラインで展開した後は、通常cdnに配信され、リモートファイルを導入する必要があります。

のような:

<script src="https://cdn.xxx.xx/js/index.js"></script>


しかし、リモートファイルを導入する場合、該当ファイルが改ざんされると、ユーザーに影響を与える可能性があるという問題があります。 cdn一般的に信頼性が高いですが、ハッカーによる攻撃を受ける可能性も否定できません。

この場合、 scriptタグのintegrity属性を通じてセキュリティ検証を実行できます。

2. 整合性セキュリティ検証

integrity属性は、インポートされたjsファイルのhash値を設定します。ブラウザがjsファイルをダウンロードすると、 jsファイルに対してhash計算が実行されます。それらが一致している場合は正常に読み込まれますが、一致していない場合は読み込みと実行が拒否されます。

のような:

<スクリプト
    整合性="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC"
    </script>

1. VueのCDNリソースをインポートする

たとえば、Vue の CDN リソースを紹介します。

https://unpkg.com/[email protected]/dist/vue.global.js

https://www.srihash.org/ を通じてハッシュ値を生成できます。

整合性によりハッシュ値が生成されます:

最後に、スクリプト タグにintegrityの値を追加します。

<script src="https://unpkg.com/[email protected]/dist/vue.global.js"
    整合性="sha384-0k9//QJdpmfSdp5IK3oJjOYPfz42f2FE0goMLtK9Vq7aKllvc4Lnz7lHPHiFhvDP"
    クロスオリジン="匿名">
</スクリプト>

2. 正常かどうかを確認する

インポートされたリソースはcdnリソースであるため、直接変更することはできませんが、 integrity変更integrity

最終的にブラウザは次のエラーを報告します。

計算された SHA-256 整合性 'Wr5PnkpmZ3oQFRZLfDrI6fsePSMak5h8rW2rqq+mdWg=' を持つリソース 'https://unpkg.com/[email protected]/dist/vue.global.js' の 'integrity' 属性に有効なダイジェストが見つかりませんでした。リソースはブロックされています。

これは、 cdnファイルのhash値がintegrityと一致しないことを意味します。

JavaScript のセキュリティ検証に integrity 属性を使用する方法については、これで終わりです。スクリプトの整合性に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • JavaScript の toLocaleString() での時間フォーマットに関する新しいアイデア
  • JavaScript の isPrototypeOf 関数
  • JavaScriptプロトタイプチェーンの詳細な説明
  • JavaScript の構成と継承の説明
  • jsイベント委譲の詳細な説明
  • nuxt.js 複数の環境変数の設定
  • JS における for、for...in、for...of、forEach の違いと使用例

<<:  HTML でのアンカーポイントの適用

>>:  http:// の代わりに // を使用する利点は何ですか (アダプティブ https)

推薦する

MySQL の where と on の違いと、いつ使用するか

以前、テーブル結合クエリを書いていたとき、whereとonの違いがわからず、SQLに小さな問題が発生...

美容・スタイリングウェブサイト向けのカラーマッチングテクニックと効果表示

色はあらゆるウェブサイトにとって最も重要な要素の 1 つであり、閲覧者に大きな影響を与えるため、色の...

MySQL における := と = の違いをグラフィカルに紹介

:= と = の違い=設定および更新の場合にのみ、:= と同じ効果、つまり代入効果があり、それ以外の...

Tomcat のプレースホルダーによるポート設定方法 (パラメータ指定方式)

仕事で必要になったため、インターネットで多くの情報を見つけましたが、それらはすべてコピーアンドペース...

JavaScriptのonclickとclickの違いの詳細な説明

目次addEventListener が必要な理由は何ですか? addEventListener を...

W3Cチュートリアル(1):W3Cを理解する

1994 年に設立された組織である W3C は、共通プロトコルの開発を促進し、それらの相互運用性を確...

HTML フォームとフォーム内部タグの使用

コードをコピーコードは次のとおりです。 <html> <ヘッド> <t...

グループフィールドを 1 行に書き込むための mysql group_concat メソッドの例

この記事では、MySQL group_concat を使用してグループ化されたフィールドを 1 つの...

Echarts 基本入門: 棒グラフと折れ線グラフの一般的な構成

1eChartsの基本手順4つのステップ1 DOMコンテナを見つける2 初期化3 設定オプション4 ...

モバイルウェブ画面適応(rem)

序文最近、フロントエンドの学習に関する以前のメモを整理したところ、モバイル Web 画面の適応 (r...

MySQL における exists、in、any の基本的な使い方

【1】存在するループを使用して外部テーブルを 1 つずつクエリし、各クエリの存在する条件ステートメン...

Linux での screen コマンドの使用方法の詳細な説明

GUNスクリーン:公式サイト: http://www.gnu.org/software/screen...

良いと思う国内のデザインサイトをいくつか選んでみました。

<br />私が良いと思った国内のデザインサイトをまとめてみました。広告ではありません!...

Dockerコンテナ間のホスト間通信 - オーバーレイベースの実装方法

オーバーレイネットワーク分析組み込みのホスト間ネットワーク通信は、常に Docker の待望の機能で...

MySQL sql99構文の内部結合と非等価結合の詳細な説明

#事例: 従業員の給与水準を照会する 選択 給与、等級 から 従業員 参加する ジョブグレード g ...