为什么内联JS块不安全?

wei*_*lou 3 javascript security inline-scripting

我正在阅读Chrome扩展程序文档“ 内容安全策略(CSP) ”。它说:

内联JavaScript以及危险的字符串到JavaScript的方法(如eval)将不会执行。此限制禁止内联块和内联事件处理程序(例如<button onclick="...">)。

...

没有任何机制可以放宽执行内联JavaScript的限制。特别是,设置包含unsafe-inline的脚本策略将无效。这是故意的。

为什么嵌入式<script>块不安全?有人可以解释吗?如果您能举一些例子,那就更好了。

谢谢。

sac*_*een 5

如页面所示:

第一个限制使您无法意外执行恶意第三方提供的脚本,从而消除了一大类跨站点脚本攻击。

基本上,您加载的所有脚本都必须位于扩展本地可访问的单独文件中。这样可以防止您加载注入到页面中或包含以下内容的第三方脚本:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

例如,如果您有一个用户可以填写的表格。用户可以输入其中包含一些JS的脚本标签。假设这就像一个讨论论坛。我进入一个主题,但其中包含一些隐藏的JS。我们还假设您没有在发布之前清除它。现在我的帖子中包含了JS,它将在每次有人查看时执行。这样可以防止执行该脚本。

  • 我试图了解这些内联“&lt;script&gt;”块如何受到恶意第三方的攻击。有例子吗? (2认同)