読者です 読者をやめる 読者になる 読者になる

CDNからのXSSを防ぐ

CSS Security

・「HTML - [Chrome 45+][Firefox 43+][Opera 32+] CDNからのXSSを防ぐ - Qiita
http://qiita.com/anqooqie/items/29177ece314ecdbc5f9a」 より

フォールバック

ファイルが改竄されていた場合、そのファイルはロードされないのでサイトの表示が崩れることになる。
JavaScriptについては以下のようなフォールバック策があるようだ。

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"
        integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS"
        crossorigin="anonymous"></script>
<script>window.jQuery.fn.modal || document.write('<script src="bootstrap.min.js"><\/script>')</script>


CSSについては以下のようなフォールバック策があるようだ。

<link rel="stylesheet"
      href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"
      integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7"
      crossorigin="anonymous">
<script>
for (var i = 0; i < document.styleSheets.length; i++) {
    var sheet = document.styleSheets[i];
    if (sheet.href == "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css") {
        var rules = sheet.rules ? sheet.rules : sheet.cssRules;
        if (rules.length == 0) {
            var link = document.createElement("link");
            link.setAttribute("rel", "stylesheet");
            link.setAttribute("href", "bootstrap.min.css");
            document.getElementsByTagName("head")[0].appendChild(link);
        }
    }
}
</script>




関連:
jQueryをロードする際のナイス!と思った書き方
http://dtp.jdash.info/archives/51941752.html

・SRI Hash Generator
https://www.srihash.org/