什么使不安全的脚本"不安全"?

kir*_*irk 4 javascript security google-chrome-extension web

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

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

Emr*_*oin 11

使Google脚本扩展的脚本不安全有三件事:

内联JavaScript

这是一个常见的错误(我已经做到了).您不能放入内联JavaScript语句.例如,您无法以这种方式处理事件:

<img src="myImage.jpg" onclick="doSomething()">
Run Code Online (Sandbox Code Playgroud)

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

page.html中:

<img src="myImage.jpg" id="myImage">
<script src="script.js"></script>
Run Code Online (Sandbox Code Playgroud)

的script.js:

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

//In JQuery
$("#myImage").on("click", doSomething);
Run Code Online (Sandbox Code Playgroud)

评估和相关功能

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

远程脚本

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

这是一个快速概述,您可以阅读更多相关信息,并对Google Chrome扩展程序内容安全政策中的此限制进行解释