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