是啥让不安全的脚本“不安全”?

Posted

技术标签:

【中文标题】是啥让不安全的脚本“不安全”?【英文标题】:What makes an unsafe script "unsafe"?是什么让不安全的脚本“不安全”? 【发布时间】:2015-09-20 05:40:45 【问题描述】:

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

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

【问题讨论】:

告诉我们你做了什么。不查看代码,我们无法知道出了什么问题。 我正在研究!不知道能不能发帖。这就是为什么我问了一个一般性的描述性问题,希望得到一个一般性的描述性答案:) 好的,所以我会尝试做一个一般性的答案:-) 【参考方案1】:

导致脚本对 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的此限制的说明

【讨论】:

【参考方案2】:

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

例如,如果您使用http:// 获取文件,但使用https:// 访问该站点,则会收到不安全脚本错误。

【讨论】:

以上是关于是啥让不安全的脚本“不安全”?的主要内容,如果未能解决你的问题,请参考以下文章

grpc中不安全的连接是啥意思?

是啥让 PHP 的 mail() 函数这么慢?

js-权威指南-Web套接字

集合类不安全操作

d3不安全的脚本[重复]

超硬核:深入讲解Perl安全之代码审计——perl脚本中存在的问题与存在的安全风险