//maps.google.com/maps/api/js 的子资源完整性值
Sub Resource Integrity value for //maps.google.com/maps/api/js
我在哪里可以找到脚本的子资源完整性值 //maps.google.com/maps/api/js?
例如:
<script src="//maps.google.com/maps/api/js" integrity="sha256-????" crossorigin="anonymous"></script>
要生成完整性哈希码,可以使用这个网站:
你粘贴你的 URL 然后在线生成哈希。但是,我认为使用 google 地图 API 不可能做到这一点。我收到以下消息:
Error: this resource is not eligible for integrity checks. See http://enable-cors.org/server.html
您没有找到该脚本的 SRI 摘要,即使您找到了也无济于事。
你没有:
SRI 哈希适用于不会更改的内容。 Google 一直在更改 API 下的代码。您不必选择要使用哪个版本的 API;他们为您选择,这就是为什么该脚本路径中没有版本号的原因。
将 SRI 用于 Google 地图 API 脚本实际上并没有提供任何额外的安全性,因为该脚本的全部工作是下载一组实际提供的其他脚本的最新版本API 功能。
您不能使用 SRI 来验证那些其他脚本,因此您已经有义务信任 Google 的安全性或放弃使用他们的地图 API。
即使你做了,也没用:
对于不下载其他 JS 文件的脚本,请尝试在 srihash.org 网站上向下滚动一点。
它说您可以使用 Linux shell 命令自己生成 SRI 摘要 openssl dgst -sha384 -binary FILENAME.js | openssl base64 -A
然而,对于像这样不使用 CORS headers 提供内容的网站,这仍然无法帮助您,因为浏览器需要 CORS 才能进行 SRI 验证。如果没有正确的 CORS headers,浏览器甚至不会尝试将脚本与 SRI 摘要进行比较。
这里有对要求 CORS 的决定背后的思维过程的解释:https://github.com/w3c/webappsec/issues/338#issuecomment-99766294
结果是,由于 SRI 哈希适用于所有类型的资源(不仅仅是 JS 和 CSS 文件,它们对整个 CORS 事物具有遗留异常)它可以用来绕过 same-origin 政策足以嗅探否则无法访问的内容。
这对于 Google 地图 API 是不可能的。
您可以在此处阅读 https://developers.google.com/maps/documentation/javascript/libraries 这个 javascript 库会不时更新。此外,如果您在 url 中使用固定版本号作为参数,则会更新。
我在哪里可以找到脚本的子资源完整性值 //maps.google.com/maps/api/js?
例如:
<script src="//maps.google.com/maps/api/js" integrity="sha256-????" crossorigin="anonymous"></script>
要生成完整性哈希码,可以使用这个网站:
你粘贴你的 URL 然后在线生成哈希。但是,我认为使用 google 地图 API 不可能做到这一点。我收到以下消息:
Error: this resource is not eligible for integrity checks. See http://enable-cors.org/server.html
您没有找到该脚本的 SRI 摘要,即使您找到了也无济于事。
你没有:
SRI 哈希适用于不会更改的内容。 Google 一直在更改 API 下的代码。您不必选择要使用哪个版本的 API;他们为您选择,这就是为什么该脚本路径中没有版本号的原因。
将 SRI 用于 Google 地图 API 脚本实际上并没有提供任何额外的安全性,因为该脚本的全部工作是下载一组实际提供的其他脚本的最新版本API 功能。
您不能使用 SRI 来验证那些其他脚本,因此您已经有义务信任 Google 的安全性或放弃使用他们的地图 API。
即使你做了,也没用:
对于不下载其他 JS 文件的脚本,请尝试在 srihash.org 网站上向下滚动一点。
它说您可以使用 Linux shell 命令自己生成 SRI 摘要 openssl dgst -sha384 -binary FILENAME.js | openssl base64 -A
然而,对于像这样不使用 CORS headers 提供内容的网站,这仍然无法帮助您,因为浏览器需要 CORS 才能进行 SRI 验证。如果没有正确的 CORS headers,浏览器甚至不会尝试将脚本与 SRI 摘要进行比较。
这里有对要求 CORS 的决定背后的思维过程的解释:https://github.com/w3c/webappsec/issues/338#issuecomment-99766294
结果是,由于 SRI 哈希适用于所有类型的资源(不仅仅是 JS 和 CSS 文件,它们对整个 CORS 事物具有遗留异常)它可以用来绕过 same-origin 政策足以嗅探否则无法访问的内容。
这对于 Google 地图 API 是不可能的。
您可以在此处阅读 https://developers.google.com/maps/documentation/javascript/libraries 这个 javascript 库会不时更新。此外,如果您在 url 中使用固定版本号作为参数,则会更新。