问题标签 [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 - 指定来自不受信任主机的脚本的哈希值
是否有任何实现或规范在 <script> 标签的属性中包含哈希或签名,以便浏览器可以在执行之前验证是否检索到正确的文件?就像是:
动机是这样的:通常,您为您的网站使用的每一个额外的 CDN 或主机都会增加您的漏洞,通过添加一个可以被黑客入侵来破坏您的网站的新目标。允许您的主要前端服务器断言这些文件的哈希或签名可以完全消除这种风险,让您在设计架构时更加灵活。您甚至可以从不受信任的对等网络请求丢失的文件。
我以为我记得有关此的规范,但一直找不到。
html - 什么是完整性和跨域属性?
Bootstrapcdn 最近更改了他们的链接。现在看起来像这样:
integrity
和crossorigin
属性是什么意思?它们如何影响样式表的加载?
browser - Subresource Integrity Opera Browser Support?
Why is Opera SRI support unknown? On a Mozilla Developer Network page, it shows various browsers and if they support SRI. Opera is unknown, why is Opera unknown? Is there not a way of testing Opera, for SRI support?
javascript - 子资源完整性保护在 Chrome 中不起作用
我根据Subresource Integrity在我的脚本中添加integrity
和标记,但现在他们在控制台中给出错误提示crossorigin
来自“ http://pagead2.googlesyndication.com ”的脚本已被跨域资源共享策略阻止加载:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问源“ http://localhost:81 ”。
这是脚本:
下面是推导:
我还将属性添加到 Amazon 脚本中,但也失败了。
来自“ http://s3.amazonaws.com ”的脚本已被跨域资源共享策略阻止加载:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问源“ http://localhost:81 ”。
Chrome 支持 SRI:http://enable-cors.org/client.html,https://www.chromestatus.com/feature/6183089948590080
我使用规范中的示例验证了哈希是否正确生成:http: //www.w3.org/TR/SRI/#integrity-metadata
那么为什么它不起作用呢?它可以在没有两个新属性的情况下工作。
Chrome 版本 46.0.2490.86 m
python - 缺少子资源完整性保护
我在 Heroku 上搭建了一个 django 博客应用程序,目前一切正常,但我有一个关于Missing Subresource Integrity Protection
.
我对使用 heroku 插件很陌生,但我已经设置了tinfoil以确保安全,并且在初始扫描后我遇到了 3 个漏洞。扫描结果表明我是Missing Subresource Integrity Protection
,他们向我提出了这个建议:
有人可以解释一下这一切意味着什么,这样我就可以从中学到一些东西,以及将来该怎么做,这样我就可以避免这种情况?
angularjs - 使用 Require JS 的 angularJS 应用程序中的子资源完整性
我有一个带有以下 index.html 文件的角度应用程序
考虑在我的 index.html 页面中,我有以下 SRI(子资源完整性)代码
如果我使用的是require JS,那么我必须将包含'alert.js'的脚本移动到'main.js'文件,如下所示
有人可以帮助我如何在 main.js 文件中包含完整性属性,同时在路径中引用 alert.js 脚本。
javascript - PHP 中的子资源完整性和缓存破坏技术
我想在我的应用程序中为静态资产(例如样式表和 JavaScript 文件)实现子资源完整性和缓存破坏。目前我使用 PHP 和 Twig 模板。
我知道有很多工具可以为所有 JS 和 CSS 文件生成哈希,但我正在寻找如何将哈希实现到数百个文件的<script>
and标记中。<link>
这篇博客文章描述了我正在尝试做的大部分事情,但是作者只介绍了缓存破坏,并在文件名中使用了一个静态时间戳,他每次都手动更改。使用构建工具以编程方式生成该时间戳也不难,但使用 SRI,该值是一个哈希值,每个文件都不同。
例如,一个片段header.html.twig
:
每次都更改src
/href
和属性不是明智的做法。integrity
我可以编写一个 Twig 函数,它每次都调用一个 PHP 函数来对文件进行哈希处理,它可能在 dev 上运行良好,但这似乎在计算上非常昂贵。
什么是可行的方法?
javascript - HTML中完整性属性的目的是什么?
我在 bootstrap 的网站上,最近注意到他们的 CDN 链接包含一个带有 SHA-384 密钥的完整性属性。
我认为这是一种验证脚本源的方法,但是我想知道它是如何使用的,这是否是任何规范的一部分?
此外,这仅适用于脚本 src,还是适用于任何非同源源?
html - 图像和其他媒体的子资源完整性?
子资源完整性似乎是一个很棒的权宜之计,允许以安全的方式使用第三方控制的 HTTP 服务资源。
但是规范只考虑HTMLLinkElement
和HTMLScriptElement
接口:
笔记
本规范的未来修订版可能包括对所有可能的子资源的完整性支持,即 ,
a
,audio
,embed
,iframe
,img
,link
,object
,script
,source
,track
和video
元素。
我知道script
和link
元素引用的内容更“活跃”,但浏览器删除了绿色挂锁,以便通过纯 HTTP 获取甚至相对无害的图像,而规范选择忽略它们?这对我来说似乎是一个巨大的缺乏远见。
这背后的原因是什么?我们什么时候可以期待“未来的修订”,如果有的话?
twitter-bootstrap - 如何解决“资源要求请求启用 CORS……资源已被阻止,因为无法强制执行完整性”错误
我在我的项目中使用引导图标,这给了我错误
子资源完整性:资源“ http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css ”具有完整性属性,但该资源需要启用 CORS 以检查完整性,事实并非如此。资源已被阻止,因为无法强制执行完整性。
谁能帮我解决这个问题,当我们开始生产时,图标没有加载。
所以我使用下面的链接作为引导图标