Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript srihash.org不适用于cesiumjs.org中的.js文件_Javascript_Google Chrome_Sha_Subresource Integrity - Fatal编程技术网

Javascript srihash.org不适用于cesiumjs.org中的.js文件

Javascript srihash.org不适用于cesiumjs.org中的.js文件,javascript,google-chrome,sha,subresource-integrity,Javascript,Google Chrome,Sha,Subresource Integrity,我使用for URL生成了以下代码: 导致: X5EHALkqk8r9hyCKwav7y+6BOUg2dRH90/qSxdytan2SQQB9g8jsYYWLDKzNeKx4 当用Chrome加载Cesium.js时,此哈希值有效。然而,这就提出了两个散列中哪一个是正确的问题。。。撇开不太可能发生的MITM攻击不谈,我认为它与行尾或编码有关Cesium.js似乎有Windows行结尾,下面是在Chrome中加载它的HTTP响应 如何解释这两个散列之间的差异,哪一个是正确的 Cesium.js

我使用for URL生成了以下代码:

导致:

X5EHALkqk8r9hyCKwav7y+6BOUg2dRH90/qSxdytan2SQQB9g8jsYYWLDKzNeKx4
当用Chrome加载Cesium.js时,此哈希值有效。然而,这就提出了两个散列中哪一个是正确的问题。。。撇开不太可能发生的MITM攻击不谈,我认为它与行尾或编码有关
Cesium.js
似乎有Windows行结尾,下面是在Chrome中加载它的HTTP响应

如何解释这两个散列之间的差异,哪一个是正确的


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

正如您所怀疑的,这显然是一个与编码相关的chrome bug。其他人为其他脚本报告问题

检查chrome和openssl之间的不一致性

作为临时解决办法,我要补充一点

vGCl/67DuYY5UzwNQGGpYh2gztA4PhvD+I4pcX7TWcU=

到受信任的SHA256完整性属性(在验证下载的脚本是否正确后)


Chrome可能是在解压之前使用一种特殊编码计算这个散列

经过一番挖掘,我发现srihash.org生成的哈希不正确

不正确的结果是由以下两个因素造成的:

  • 即使请求不包含
    接受编码:gzip
    ,从cesiumjs.org发送的请求也始终带有
    内容编码:gzip

  • srihash.org(请参阅)用于获取资源,其中


不,这不是问题所在。正如我在问题中所说,我手动生成的SHA-384实际上可以工作。Chrome在错误消息中引用了SHA-256哈希值,这并不意味着它不支持SHA-384。有趣的是,我实际上使用的是一个较新版本的Chrome,它不受这个bug的影响。另外,正如我所说,在我的案例中,Chrome和OpenSSL的行为是一致的。
X5EHALkqk8r9hyCKwav7y+6BOUg2dRH90/qSxdytan2SQQB9g8jsYYWLDKzNeKx4
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