7

サブリソースの整合性チェックを実装しています。1) ブラウザが CDN からロードし、整合性チェックを実行して続行する、または 2) 整合性チェックに失敗した場合に、埋め込みスクリプトが起動し、アプリケーションから必要なスクリプトを取得するようなフォールバックを実装したいと考えています。サーバー (私の管理下にあるリソース)。

window.onerror イベントをキャッチする単純な JavaScript がありますが、スクリプトは実際にはキャッチされていない ReferenceError (私のページは外部リソース内のスクリプトを参照しています) を検出しており、「有効なダイジェストが見つかりませんでした...」というブラウザー エラーは検出していません。

整合性チェックが失敗したことを検出し、javascript を使用してサードパーティのホストされたリソースをより信頼できる場所から取得する方法を見つけた人はいますか?

4

3 に答える 3

4

SRI フォールバックのこの実装を見てください。

https://github.com/cyph/sri-fallback

于 2016-11-21T20:04:13.173 に答える
2

読み込まれたリソースが存在するかどうかを確認し、フォールバック ローカル コピーを読み込むことができます。

<script src="https://code.jquery.com/jquery-1.12.0.min.js" integrity="sha256-Xxq2X+KtazgaGuA2cWR1v3jJsuMJUozyIXDB3e793L8=" crossorigin="anonymous"></script>
<script>
if (!window.jQuery) {
                var script = document.createElement('script');
                script.src = '/local-resources/js/jquery-1.12.0.min.js';
                script.async = false;
                document.head.appendChild(script);
            }
</script>
于 2016-12-06T16:05:35.517 に答える