URL https://cesiumjs.org/releases/1.21/Build/Cesium/Cesium.jsに対してsrihash.orgを使用して次のコードを生成しました。
<script src="https://cesiumjs.org/releases/1.21/Build/Cesium/Cesium.js"
integrity="sha384-CAN0Iz/H09oATWPeJZclEOAM/nF1cq3DSuAbxi9IMbZIx8m3ERInrpuk11n+lHRq"
crossorigin="anonymous"></script>
整合性チェック済みのスクリプトを含むページを読み込もうとすると、Windows の Chrome 50 で次のエラーが発生します。
計算された SHA-256 整合性「vGCl/67DuYY5UzwNQGGpYh2gztA4PhvD+I4pcX7TWcU=」を持つリソース「 https://cesiumjs.org/releases/1.21/Build/Cesium/Cesium.js 」の「整合性」属性で有効なダイジェストを見つけることができませんでした。リソースがブロックされました。
また、次を使用して、手動でハッシュを生成しようとしました (Windows では、openssl-1.0.2h)。
openssl dgst -sha384 -binary Cesium.js | openssl base64 -A
その結果:
X5EHALkqk8r9hyCKwav7y+6BOUg2dRH90/qSxdytan2SQQB9g8jsYYWLDKzNeKx4
このハッシュは、Cesium.js を Chrome でロードするときに機能します。ただし、これにより、2 つのハッシュのうちどちらが正しいかという疑問が生じます...MITM 攻撃の可能性は低いとはいえ、行末またはエンコーディングに関係があると思います。Cesium.js
Windows の改行があるようで、Chrome での読み込みの HTTP レスポンスを以下に添付します。
2 つのハッシュの違いはどのように説明でき、どちらが正しいのでしょうか?
Cesium.js の HTTP 応答ヘッダー:
HTTP/1.1 200 OK
Cache-Control: max-age=172800
Content-Length: 494091
Content-Type: application/javascript
Content-Encoding: gzip
Last-Modified: Mon, 02 May 2016 15:12:32 GMT
Accept-Ranges: bytes
Server: Microsoft-IIS/8.5
x-amz-id-2: giU2DeYQi87OAkuyr2qKeZx8KRihIY7TV9qcJShi/YVl+C5K50mHeSLFWYhA8k5Oc+A50Oxjh/4=
x-amz-request-id: 112881D9D52248F6
X-Powered-By: ARR/3.0
X-UA-Compatible: IE=edge
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Content-Type,X-Requested-With
Date: Mon, 30 May 2016 12:49:46 GMT