问题标签 [subresource-integrity]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 为什么我不能使用 SRI 从本地计算机 (file:///) 加载文件?
我有一些网页试图从我的浏览器中加载,file:///
并且我在 JS 和 CSS 上有完整性哈希。
JS 和 CSS 不会加载<link>
和<script>
标签中存在的完整性哈希,但它们会在删除它的情况下加载。
我有以下<script>
标签:
javascript - 添加完整性后访问控制允许源 CORS 警告
我有一个已上传到 Google Cloud Project 存储桶中的 JS 文件。我将其用作 CDN。在我向用作 CDN 的 JS 文件添加完整性检查后,我不断收到错误消息
Access to script at someCDN.js from origin requestURL.com has been blocked by CORS policy. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'requestURL.com' is therefore not allowed access
在添加完整性检查之前,我之前能够毫无问题地使用此 CDN。我仔细检查并确保请求的 URL 设置为允许的 Origin 标头,但现在我在添加完整性检查后收到此错误。
我使用 CDN 的方式是<script>
动态构建标签并将其附加到 DOM。
我生成 HASH 的方式是https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity#Tools_for_generating_SRI_hashes
使用文档中的命令生成哈希后,我将文件作为对象上传到 Google Cloud 存储桶。
javascript - ES6 模块导入的子资源完整性
考虑到可能想要从 CDN 导入 JS 模块,确保交付的 JS 模块的完整性可能很重要。
幸运的是,在“旧”集成方法中,我们已经用Subresource Integrity解决了这个问题。
但是,我认为在导入 ES6 模块时这是不可能的。
那么有什么方法或计划来实现这个东西吗?
iframe - 设置 iframe 的内容安全策略?
消费者网站(例如 nytimes.com)是否有办法确保其加载的 iframe 无法与服务器通信,并且只能访问 postMessage?这可以从托管 iframe 文档的服务器完成。但我不想相信那台服务器。
这就是我需要的:我想使用微妙加密存储不可提取的非对称密钥,使用由第三方审核的内联 JS 加载一些静态 HTML,我确信这是使用 SRI 加载的内容,最后通过一些数据使用 postMessage 到它,并通过覆盖 postMessag 关闭该 sanbox 中的门,以向用户代理的用户保证从该点解密和显示的任何数据都不会泄露给其他任何人(假设用户代理遵循网络标准)。
用户如何知道他们可以信任 iframe?因为 iframe 会在门关闭后显示他们选择的一些熟悉的字符串,由相同的私钥解密。由于它不可提取,因此没有服务器可以解密它,因此它必须是用户信任的经过审核的安全 HTML + JS 环境。
但是用户和嵌入站点如何验证并确定 iframe 的内容安全策略是什么?
javascript - 即使在 SRI 完整性失败后仍执行 Javascript
我在本地的 9180 端口上有一个测试页面,它正在从另一个端口加载 JS 以模拟不同的域。
myscript.js
在浏览器上运行此程序时,我在控制台上看到错误,但仍会触发警报
我错过了什么吗?或者由于本地浏览器允许执行脚本。
html - 子资源完整性:如何仅显示警告而不显示阻止资源?
我想对子资源完整性属性进行软集成,所以请确保我没有破坏应用程序,而只是显示我需要修复某些地方的警告。
有没有办法这样做?
security - 谷歌分析和子资源完整性
我在内容安全策略(CSP) 标头中启用了子资源完整性(SRI) 。
如何整合谷歌分析?当谷歌更新他们的分析javascript时,为他们的脚本使用哈希可能会在几天内中断。
有什么建议么?
google-signin - 用于 Google 登录的 SRI
我对网站有要求,我需要为 Google 登录功能设置子资源完整性 ( https://www.w3.org/TR/SRI/ ),有人可以告诉我这是否可行或资源是否可用( https://apis.google.com/js/platform.js ) 发生变化,我需要使用任何版本机制或解决方法来实施 SRI。
我已经尝试设置在https://www.srihash.org/中生成的哈希并且工作正常,但我不知道这是否会在未来继续工作:
security - package-lock.json 是否也意味着提高由子资源完整性检查构建的应用程序的安全性?
我已阅读有关package-lock.json文件的以下内容:
该文件旨在提交到源存储库中,并用于各种目的:
- 描述依赖关系树的单一表示,以保证团队成员、部署和持续集成安装完全相同的依赖关系。
- 为用户提供“时间旅行”到 node_modules 先前状态的工具,而无需提交目录本身。
- 通过可读的源代码控制差异来促进对树更改的更大可见性。
- 并通过允许 npm 跳过以前安装的包的重复元数据解析来优化安装过程。
请参阅NPMJS 文档 package-lock.json 描述。
但在同一链接的另一个片段中,我看到:
正直§
这是此资源的标准子资源完整性。
- 对于捆绑的依赖项,这不包括在内,无论来源如何。
- 对于注册表源,这是注册表提供的完整性,或者如果未在 shasum 中提供 SHA1。
- 对于 git 源,这是我们从中克隆的特定提交哈希。
- 对于远程 tarball 源,这是基于文件 SHA512 的完整性。
- 对于本地 tarball 源:这是一个基于文件 SHA512 的完整性字段。
请参阅NPMJS 文档 package-lock.json 依赖完整性。
在链接到标准子资源完整性(SRI)之后,我发现了以下内容:
1.1。目标
- 损害第三方服务不应自动意味着损害包括其脚本的每个站点。内容作者将拥有一种机制,他们可以通过该机制指定他们加载的内容的期望,例如,他们可以加载特定的脚本,而不是碰巧具有特定 URL 的任何脚本。
请参阅W3C 子资源完整性
所以我想知道为什么在 NPMJS 文档中对package-lock.json的描述中没有提到/列出安全目的。就我个人而言,我也喜欢使用 package-lock.json 来提高我的应用程序安全性的想法(通过仔细查看锁定的实际依赖项并同时更改签入到我的 VCS 存储库的锁定文件,同时对我的package.json进行一些更改以防止任何被篡改的依赖项进入我的应用程序)。
但也许我遗漏了一些东西,由于某些原因,锁定文件不能用于我上面解释的安全目的。
symfony - 未调用通过子资源的 Symfony 选民
这是上下文:
我使用带有 api 平台的 Symfony 3.4。
我有两节课:
- 供应商
- 产品
我想列出所有供应商的产品
在供应商实体中,我在常规 CRUD 方法上实现了 access_control,该方法适用于选民。
我还有一条通过无法正常工作的子资源的路线:
问题是,子资源的访问控制不起作用。它应该在那里检查选民对该资源的许可,但不检查选民并在我需要他返回 403 时返回 HTTP 响应代码 200。
我已经检查了他们使用安全性而不是 access_control 的文档:
它也不起作用。
有没有人知道为什么不叫选民的任何线索或提示?