标签: subresource-integrity

什么是完整性和crossorigin属性?

Bootstrapcdn最近改变了他们的链接.它现在看起来像这样:

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" 
rel="stylesheet" 
integrity="sha256-MfvZlkHCEqatNoGiOXveE8FIwMzZg4W85qfrfIFBfYc= sha512-dTfge/zgoMYpP7QbHy4gWMEGsbsdZeCXz7irItjcC3sPUFtf0kuFbDz/ixG7ArTxmDjLXDmezHubeNikyKGVyQ==" 
crossorigin="anonymous">
Run Code Online (Sandbox Code Playgroud)

这些integritycrossorigin属性是什么意思?它们如何影响样式表的加载?

html html5 cross-domain cors subresource-integrity

334
推荐指数
2
解决办法
10万
查看次数

从不受信任的主机指定脚本的哈希值

是否有任何实现或规范在<script>标记的属性中包含哈希或签名,以便浏览器可以在执行之前验证是否检索到了正确的文件?就像是:

<script
  src="http://cdn.example.com/jquery-2001.js"
  signature="sha-256/e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
></script>
Run Code Online (Sandbox Code Playgroud)

其动机是这样的:通常,您为网站使用的每个额外CDN或主机都会增加您的漏洞,方法是添加可能被黑客攻击以破坏您网站的新目标.允许主要前端服务器断言这些文件的哈希值或签名可以完全消除这种风险,使您在设计架构时更加灵活.您甚至可以从不受信任的对等网络请求丢失的文件.

我以为我记得有关此的规范,但一直未能找到它.

html javascript cryptography cors subresource-integrity

18
推荐指数
1
解决办法
1336
查看次数

HTML中的integrity属性的目的是什么?

我在bootstrap的网站上,我最近注意到他们的CDN链接包含一个带有SHA-384密钥的完整性属性.

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
Run Code Online (Sandbox Code Playgroud)

我认为这是一种验证脚本源的方法,但更多的是我想知道它是如何使用的,如果这是任何规范的一部分?

此外,这只适用于脚本src,还是可以与任何非同源源一起使用?

javascript twitter-bootstrap subresource-integrity

10
推荐指数
1
解决办法
1万
查看次数

//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>
Run Code Online (Sandbox Code Playgroud)

google-maps google-maps-api-3 google-cdn subresource-integrity

10
推荐指数
2
解决办法
4136
查看次数

子资源完整性:如何仅显示警告而不阻止资源?

我想对Subresource Integrity属性进行软集成,因此请确保没有破坏应用程序,而只是警告我需要修复某些地方。

是否可以选择这样做?

html subresource-integrity

10
推荐指数
1
解决办法
393
查看次数

es6导入的子资源完整性

<script>接受integrity属性,所以我可以安全地加载模块:

<script type="module"
  src="https://example.com/module.mjs"
  integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60="
  crossorigin="anonymous"
></script>
Run Code Online (Sandbox Code Playgroud)

但是在脚本中加载模块时如何保持安全?

  • 进口:
import foo from "https://example.com/module.mjs"
Run Code Online (Sandbox Code Playgroud)
  • 动态导入:
import("https://example.com/module.mjs").then(console.log)
Run Code Online (Sandbox Code Playgroud)
  • 甚至网络工作者:
const myWorker = new Worker('worker.js')
Run Code Online (Sandbox Code Playgroud)

subresource-integrity es6-modules

8
推荐指数
1
解决办法
295
查看次数

使用Require JS的angularJS App中的子资源完整性

我有一个带有index.html文件的角度应用程序

在我的index.html页面中考虑我有以下SRI代码(SubResource Integrity)

<html>
<head>
<meta http-equiv="Content-Security-Policy" 
      content="script-src 'self' scripts/alert.js 'unsafe-inline' 'unsafe-eval' 'sha256-qznLcsROx4GACP2dm0UCKCzCG+HiZ1guq6ZZDob/Tng='">

<script src="scripts/alert.js"
        integrity="sha256-qznLcsROx4GACP2dm0UCKCzCG+HiZ1guq6ZZDob/Tng="
        crossorigin="anonymous"></script>
</head>
</html>
Run Code Online (Sandbox Code Playgroud)

如果我使用require JS,那么我必须将'alert.js'的脚本包含到'main.js'文件中,如下所示

require.config({


    // alias libraries paths
    paths: {
            'jquery': '/scripts/alert'
            },
    // kick start application
    deps: ['../app/require.bootstrap']
 })
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我如何在路径中引用alert.js脚本时将integrity属性包含在main.js文件中.

require requirejs angularjs subresource-integrity

7
推荐指数
1
解决办法
1404
查看次数

Web 浏览器是否以不同的方式缓存具有子资源完整性 (SRI) 的资源?

我认为在资源上指定资源完整性哈希应该允许网络浏览器积极地缓存,并且基本上总是重用资源的本地副本。

是否在浏览器中实施(或至少“计划实施”)对 SRI 资源的更强缓存因此,例如点击“[刷新页面]”按钮仍然会使浏览器重用缓存的资源?或者不是?如果不是,那么是不是因为一些重要的原因?或者只是“还没有,但也许有一天”?

browser browser-cache subresource-integrity

7
推荐指数
1
解决办法
407
查看次数

谷歌分析和子资源完整性

我在内容安全策略(CSP) 标头中启用了子资源完整性(SRI) 。

如何集成谷歌分析?当谷歌更新他们的analytics-javascript时,为他们的脚本使用哈希可能会在几天内中断。

有什么建议?

security google-analytics content-security-policy subresource-integrity

7
推荐指数
0
解决办法
1394
查看次数

图片和其他媒体的子资源完整性?

子资源完整性似乎是一个绝妙的权宜之计,允许以安全的方式使用第三方控制的HTTP服务资源。

但是,该规范仅考虑HTMLLinkElementHTMLScriptElement接口:

注意

本规范的未来版本可能会包括对所有可能的子资源完整性的支持,即aaudioembediframeimglinkobjectscriptsourcetrack,和video元素。

我知道scriptlink元素所指的内容更加“活跃”,但是浏览器删除了绿色的挂锁,以便通过纯HTTP甚至获取相对无害的图像,而规范选择忽略它们?对我来说,这似乎是极缺乏远见的。

这背后的原因是什么,我们什么时候可以期待“未来修订”?

html https w3c image subresource-integrity

6
推荐指数
1
解决办法
618
查看次数