什么使不安全的脚本“不安全”?

时间:2015-07-02 15:34:25

标签: javascript security web google-chrome-extension

我是Chrome扩展程序的新手。我正在编写一个小插件,当用户按下按钮(非常新)时放大页面。但是,它不会运行,除非我允许不安全的脚本,并且它不会转移到新页面,表面上是因为不安全的脚本。我正在做的就是缩放。

我真正想知道的是,如果不是要求提供信息或直接访问他们的计算机,是什么让脚本不安全?

2 个答案:

答案 0 :(得分:9)

对于Google扩展程序,有三件事使脚本不安全:

内联JavaScript

这是一个常见的初学者错误(我已经成功了)。您无法输入内联JavaScript语句。例如,您无法以这种方式处理事件:

<img src="myImage.jpg" onclick="doSomething()">

执行此操作的正确方法是为DOM元素定义Id,在我的示例中定义图像,并在单独的JavaScript文件中设置事件处理程序:

page.html中:

<img src="myImage.jpg" id="myImage">
<script src="script.js"></script>

的script.js:

//In vanilla Javascript :
document.getElementById("myImage").onClick(doSomething);

//In JQuery
$("#myImage").on("click", doSomething);

评估和相关功能

所有可以在飞行中将String评估为JavaScript的函数都是不安全的。 因此不允许使用eval函数,例如new Function("return something.value");

远程脚本

只有本地脚本才是安全的。如果您使用的是jQuery,则必须在扩展中包含该库。通过CDN链接加载外部库被认为是不安全的。

这是一个快速概述,您可以阅读更多相关信息,并对Google Chrome扩展程序Content Security Policy

对此限制进行解释

答案 1 :(得分:2)

要考虑的另一件事是您如何采购文件。

例如,如果您使用http://来源文件,但使用https://访问该网站,则会出现不安全的脚本错误。