我正在阅读Chrome扩展文档"内容安全政策(CSP)"。它说:
内联 JavaScript,以及危险的字符串到 JavaScript 方法 像 Eval 一样,不会被执行。此限制禁止内联 块和内联事件处理程序(例如
<button onclick="...">
)。。
没有放宽执行限制的机制 内联 JavaScript。特别是,设置脚本策略 包括不安全的内联将不起作用。这是故意的。
为什么内联<script>
块不安全?谁能解释一下?如果你能举个例子会更好。
谢谢。
正如页面所说:
第一个限制清除了一大类跨站点脚本 通过使您无法意外执行脚本进行攻击 由恶意第三方提供。
基本上,您加载的任何脚本都需要位于扩展名本地可访问的单独文件中。这可以防止您加载注入到页面中的第三方脚本或包含它们,例如:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
例如,如果您有用户可以填写的表单。用户可以输入一个包含一些JS的脚本标记。假设它就像一个讨论论坛。我进去做一个主题,但它里面有一些隐藏的JS。我们还假设您在发布之前没有将其清理干净。现在我的帖子有JS,每次有人查看它时都会执行。这会阻止执行该脚本。