问题标签 [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.

0 投票
1 回答
177 浏览

firebase - Firebase 上的子资源完整性安全标头

SRI - Firebase 上的子资源完整性安全功能

  • 我想在 Firebase 上实现子资源完整性安全功能。
  • 我的推送通知是 OneSignal 网站的基本设置,由 CDN 提供服务,但现在我正在处理 CORS 问题。
  • 尝试通过 Access-Control-Allow-Origin 标头将 oneSignal CDN 列入白名单,但没有成功。

对此有何建议?非常感谢!

索引.html

firebase.json

注意:对于从嵌入它的文档以外的源提供的资源的子资源完整性验证,浏览器还使用跨源资源共享 (CORS) 检查资源,以确保为资源提供服务的源允许共享它与请求的来源。 子资源_完整性

0 投票
0 回答
672 浏览

javascript - 为 analytics.js (google-analytics) 实现子资源完整性 (SRI) Mozilla Obersvatory

背景

我有一个使用谷歌分析的网站,比如

并使用 Mozilla Observatory 对其进行安全漏洞测试。

问题

我有来自 Mozilla 天文台的以下问题:

未实现子资源完整性 (SRI),但所有外部脚本均通过 HTTPS 加载

思念至今

似乎无法为其创建哈希,例如通过https://www.srihash.org/。而且我不想在本地创建哈希,因为如果analytics.js更改,它将破坏站点。

我可以使用 anonce但我不确定如何在每个请求中生成它。

我正在考虑analytics.js在本地下载和使用它。这样做有什么缺点吗?

提前致谢

0 投票
1 回答
360 浏览

attributes - 如何使用 SRI 哈希和“onload”属性

按照 Google Lighthouse 的建议为我的网站获得更快的响应,我正在使用这个技巧来加载字体:

但由于我严格的 CSP 规则,它失败了,而且我不知道如何为这个“onload”属性添加 sha384 哈希:/

我试图onload像这样获取内容哈希:

输出:npWtxZLLH7z2/zORM47igyJ5eTYuOl9qxzn4A632S7yMmMKBDHhL5ZHC6eBSxc/C

然后我将它添加到 CSP SRI 列表中,然后刷新,但它失败了:

拒绝执行内联事件处理程序,因为它违反了以下内容安全策略指令:“script-src 'strict-dynamic' '[...list of other SRI hashes...]' sha384-npWtxZLLH7z2/zORM47igyJ5eTYuOl9qxzn4A632S7yMmMKBDHhL5ZHC6eBSxc/C 'unsafe-内联'http:https:“。请注意,如果源列表中存在散列值或随机数值,则忽略“不安全内联”。

如何在不授权所有内联脚本的情况下允许这个内联“onload”小脚本?为什么我的 SRI 在添加时不起作用?:(

谢谢 !

0 投票
0 回答
79 浏览

javascript - 对本地托管文件进行子资源完整性检查?

我已经完成了为我的站点上的外部加载文件添加子资源完整性输出的工作,并且我已经进行了广泛的测试以确保我的站点尽可能安全和最新。但是,尽管我能够在 Mozilla Observatory 上获得 A+ 评级,但我永远无法通过“子资源完整性”检查,而且我根本无法理解为什么。

https://observatory.mozilla.org/analyze/icondds.com

我是否也应该将子资源完整性代码添加到我的本地托管文件中?

感谢您的任何见解。

文斯

0 投票
1 回答
45 浏览

php - 在 PHP 中缓存动态图像

我在我的项目中有两件事要完成,第一件事是隐藏图像路径,这是通过使用参数从 imageConvert.php 动态加载图像(imageJPEG)来完成的,第二件事是我需要实现客户端浏览器缓存, 为此我使用

之前(使用正常的图像路径),但它不适用于动态图像加载。有没有人对此有解决方案。

提前致谢。

0 投票
0 回答
545 浏览

symfony - ApiPlatform - 在子资源路由上实现安全授权

我正在使用Symfony5ApiPlatform

我有一个User实体和一个Product实体。

我想通过子资源列出我所有用户的产品,为此我实现了我的user类,如下所示:

它确实创建了一条路线/users/{id}/products并返回我想要的东西。

我阻止的部分是当我想向这条路线添加授权时:

  • ROLE_ADMIN可以访问这条路线
  • ROLE_USER拥有资源的人可以访问它
  • 所有其他角色将获得FORBIDDEN

为此,我遵循了文档:https ://api-platform.com/docs/core/subresources/#using-serialization-groups

  • 添加subresourceOperations@ApiSubresource注释
  • api_users_consultations_get_subresource通过bin/console debug:router命令恢复了我的已生成路线的名称
  • 并简单地设置一个security=is_granted('ROLE_ADMIN')方法,就像其他操作一样。
  • security=is_granted('SUB_LIST', object)击中voter

但是当我运行我的测试时,我得到200了我应该收到403的地方,UserVoterorProductVoter没有被触发,也没有被触发is_granted('ROLE_ADMIN')

好像subresourceOperations注释没有被ApiPlatform.

我还尝试将操作的名称从更改api_users_consultations_get_subresource为:

  • consultations_get_subresource
  • api_consultations_get_subresource
  • clients_get_subresource
  • api_clients_get_subresource

和我在上面看到的不同的其他变体Github在某些情况下解决了这个问题(比如这里https://github.com/api-platform/api-platform/issues/1581#issuecomment-662503549)但它对我不起作用。

所以我想知道我没有做些什么来正确实施它吗?

这是一个已知问题ApiPlatform吗?

有谁看到我的逻辑在哪里失败?

是否有另一种方法来设置subresource路线的安全性?

是否有更多关于安全性的文档subresource?我没有找到很多关于这个特定主题的材料

0 投票
1 回答
244 浏览

security - 我如何知道我的子资源完整性标签 (SRI) 不是从恶意 CDN 生成的?

例如,我在 Angular 中了解,在构建项目时,您可以使用以下命令自动添加子资源完整性 (SRI) 标签:

我的问题是,我如何知道在运行该命令时创建的哈希不是来自恶意 CDN?

我觉得这就像我可能永远不知道的鸡和蛋的问题?

0 投票
1 回答
293 浏览

javascript - 动态更改 Javascript 文件的子资源完整性?

我正在尝试对网页实施子资源完整性。我有一个基于某些变量动态构建的内联 javascript,

为作为 URL 一部分指定的每个动态值呈现文件的单独内容。由于完整性哈希是基于内容计算的,因此实际上不可能预先计算脚本标签的哈希(因为 DYNAMIC_VALUE 可以是 1001、1002、...n)。

对于这种涉及动态变量的场景,SRI 是否有任何最佳实践?谢谢!

0 投票
0 回答
36 浏览

javascript - 如何禁用 js 文件中的子资源完整性,以便在开发服务器上进行新添加的 javascript 功能测试?

在 asp.net webform 页面中,包含以下脚本元素

为子资源完整性启用开发服务器。我在 pagevalidations.js 添加了一个新的 javascript 函数。在运行时,未调用该函数,抛出以下错误

未能在资源 .../pagevalidations.js 的“完整性”属性中找到有效摘要。资源已被封锁

如何禁用特定脚本元素的“完整性”功能以测试开发服务器上的功能这样,在生产部署之前,将为添加的 pagevalidations.js 文件的更新/新 js 函数生成新的哈希键,并将在此脚本元素相应

0 投票
2 回答
341 浏览

c# - 如何在 ScriptBundle for .NET MVC (4.7.2) 应用程序中包含 SRI 哈希?

目前我的捆绑包正在使用公共库的本地副本。

我想转换为使用 CDN,并希望通过包含哈希值来确保我遵守 SRI。我发现很多关于在捆绑配置中使用 CDN 的文章,但没有关于如何在捆绑时包含 SRI 哈希和跨域标记的文章。

请帮助我。