Dim*_*try 7 content-security-policy
'child-src'指令已弃用,将于2017年8月左右在M60中删除。请改为对Workers使用'script-src'指令。
那么,在现代(减去2个版本)浏览器中工作的指令的正确集合是什么?看起来frame-src + script-src就足够了吗?但是,script-src中应该有什么呢?
PS:“淘汰”甚至合法吗?
2018-12-20更新
child-src在此期间不推荐使用 …所以现在frame-src也child-src不再推荐使用。但是这里原始答案的指导仍然成立:
那么,在现代(减去2个版本)浏览器中工作的指令的正确集合是什么?
似乎答案取决于您要为其指定策略的确切范围。
iframe元素和脚本使用不同的策略,则只需default-src为两者指定相同的策略即可。iframe元素政策与其他资源的政策不同,那就是use frame-src。同样,如果您想要的脚本策略与其他资源的策略不同,请使用script-src。script-src策略就可以了,并且可以在此停下来。script-src策略外,还应提供worker-src策略。它worker-src不会影响浏览器,但是当浏览器确实增加支持时,它将面向未来。如果您对不赞成使用的理由感到好奇,请参阅https://github.com/w3c/webappsec-csp/issues/239#issuecomment-336135344child-src:
我希望其他供应商能够实施,
worker-src以便我们可以降低平台的使用率child-src并将其从平台中删除,但是这种情况发生的速度似乎不够快(删除Chrome奇怪的后备功能会破坏0.006%的页面浏览量的工作负荷,不大,但并非没有)。
2017-09-04回答
它比问题中描述的要复杂得多,因为CSP3规范还引入了worker-src指令。但是规范提供了以下指导:
该
child-src模型已大大改变:
frame-src在CSP 2级中已弃用的指令已被弃用,但child-src如果不存在,则会继续使用(default-src反过来又顺次执行)。worker-src添加了一个指令,script-src如果不存在,则将其推迟(同样也顺应default-src)。child-src现在已弃用。
那是在https://w3c.github.io/webappsec-csp/中,这是编辑的草稿,但是您应该始终向其咨询当前的规范要求。原因:您不能相信https://www.w3.org/TR/CSP/是最新的(通常,您不能相信https://www.w3.org/TR下的任何东西都是最新的)是最新的),而编辑器的草稿则是浏览器实现者实际上要实现的目标(他们等不及要实现,直到在https://www.w3.org/TR上发布了某些内容为止)。
无论如何,child-src不推荐使用该指令的原因是其效果指定为:
该儿童SRC指令管辖的嵌套浏览上下文(如创建
<iframe>和<frame>导航)和工人执行上下文。
实际上,这样做的问题是:an iframe与工作脚本完全不同。因此,这就是为什么worker-src要添加它,为什么frame-src不建议使用它(因为您确实确实希望使用单独的指令为iframe元素指定策略),以及为什么child-src不建议使用它(因为您确实不想对iframe元素和辅助脚本都应用一个策略) 。
那么,在现代(减去2个版本)浏览器中工作的指令的正确集合是什么?
似乎答案取决于您要为其指定策略的确切范围。
iframe元素和脚本使用不同的策略,则只需default-src为两者指定相同的策略即可。iframe元素政策与其他资源的政策不同,那就是use frame-src。同样,如果您想要的脚本策略与其他资源的策略不同,请使用script-src。script-src策略就可以了,并且可以在此停下来。script-src策略外,还应提供worker-src策略。它worker-src不会影响浏览器,但是当浏览器确实增加支持时,它将面向未来。PS:“淘汰”甚至合法吗?
是。尽管我不记得曾见过任何其他规范或工作组这样做过,但在这种情况下这是正确的做法-因为CSP规范作者和工作组意识到这child-src是一个错误,并且frame-src实际上是必要的,而且不赞成使用的错误。
因此,他们可以相对迅速地消除这些错误。它在这种情况下起作用的部分原因是:frame-src弃用时间不够长,浏览器无法支持它,而且很多Web开发人员从未child-src开始使用。
| 归档时间: |
|
| 查看次数: |
2133 次 |
| 最近记录: |