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

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

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

【问题讨论】:

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

标签: javascript security web google-chrome-extension


【解决方案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:// 访问该站点,则会收到不安全脚本错误。

    【讨论】:

      猜你喜欢
      • 2012-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-27
      • 1970-01-01
      • 2014-12-04
      • 2011-05-26
      • 1970-01-01
      相关资源
      最近更新 更多