是什么让一个不安全的脚本“;“不安全”;

What makes an unsafe script "unsafe"?

本文关键字:不安全 脚本 一个 是什么      更新时间:2023-09-26

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

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

有三件事使脚本对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);

Eval及相关功能

所有可以即时将String求值为JavaScript的函数都是不安全的。因此不允许使用eval功能,例如new Function("return something.value");

远程脚本

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

这是一个快速的概述,你可以阅读更多关于这方面的信息,并对谷歌Chrome扩展的限制进行解释内容安全政策

另一件需要考虑的事情是如何获取文件。

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