Greasemonkey的安全性如何?

时间:2008-11-25 04:48:19

标签: javascript security greasemonkey

我从未真正使用过油脂,但我正在考虑使用它。 考虑到GreaseMonkey允许您让互联网上的随机人员改变您喜欢的网站的行为,它有多安全? 他们可以窃取我的密码吗?看看我的私人数据?做我不想做的事情? Greasemonkey的安全性如何?

由于

4 个答案:

答案 0 :(得分:24)

考虑到GreaseMonkey允许您让互联网上的随机用户改变您喜欢的网站的行为,它有多安全?

它和你允许它一样安全 - 但你不是很清楚,所以让我们从几个角度来看待它:

Web Developer

Greasemonkey无法对您的网站做任何事情,因为telnet用户无法对您的网站进行任何操作。它可以自动化一些东西,但除此之外,如果greasemonkey是一个安全漏洞,那么你的网站设计是有缺陷的 - 而不是paintmonkey。

已加载Greasemonkey的Internet用户

与您在系统上加载的任何其他内容一样,可以使用greasemonkey来对付您。除非您信任源(在“源”一词的两个含义中),否则不要将脚本加载到您的系统上。这是相当有限的沙盒,但这并不意味着它是安全的,只是因为某人做一些邪恶的事情更难。

没有Greasemonkey的Internet用户

如果您不加载greasemonkey或其任何脚本,它不会以任何方式影响您。除非您已将其加载到系统上,否则Greasemonkey不会更改您访问的网站。

Greasemonkey开发人员

除了已经使用XUL和javascript做的事情之外,你所做的事情并不多,但是可以删除你的mozilla和/或firefox配置文件,以及系统的其他部分。不太可能,难以故意或恶意,但它不是一个防弹实用程序。 负责任地发展。

- 亚当

答案 1 :(得分:6)

  

考虑到GreaseMonkey允许您让互联网上的随机用户改变您喜欢的网站的行为

已安装UserScript的随机用户。没有人可以强迫您安装UserScript。

  

他们可以窃取我的密码吗?

是的,UserScript可以修改登录页面,以便将密码发送给攻击者。 不,它无法查看您当前的密码,也无法查看未启用UserScript的网站

  

查看我的私人数据?

是的,如果您的私人数据在您已获得UserScript访问权限的网站上可见

  

做我不想做的事情?

是的,UserScript可以对不受欢迎的网页(您已授予其访问权限)执行操作

  

GreaseMonkey的安全性如何?

与您安装的各个UserScripts一样安全

答案 2 :(得分:3)

如果谨慎使用,Greasemonkey的安装和使用应该非常安全。虽然绝对有可能通过对页面的全权访问Javascript访问恶作剧的所有方式,但Greasemonkey脚本仅限于特定的URL,并且不会在其标题中未由URL模式指定的站点上运行。

话虽这么说,一个基本的经验法则是考虑这些脚本可以访问Greasemonkey脚本活动的页面上的大多数信息。在技​​术上可行的是玩替换输入框(您可以输入密码或个人信息),读取页面上的任何数据以及将收集的数据发送给第三方等游戏。 Greasemonkey脚本确实在浏览器中的有效沙箱中运行,并且不应该影响Firefox之外的计算机。

话虽如此,在某些方面,风险与安装任何其他小型开源软件的风险相当或更低。由于Greasemonkey脚本是简单的开源Javascript文件,因此程序员可以相对容易地查看内部并确保它完成它所说的功能。与往常一样,小心运行陌生人的代码(任何形式),如果软件对您很重要,请花时间浏览源代码。

总的来说,Greasemonkey脚本应该非常安全。尝试使用包含大量评论和用户的脚本,因为社区可能会对这些脚本进行更彻底的审查和分析。

快乐的用户编写!

答案 3 :(得分:3)

是的,用户脚本可以窃取您的密码。这是底线。

,请勿在工作或政府计算机上使用firefox插件或用户脚本

与firefox插件不同,用户脚本未经过正式审查。 (Firefox的实验性插件也没有经过审查)。您可以立即注册并向userscripts.org添加恶意脚本。

用户脚本非常不安全。跨站点脚本编写能力意味着将您的详细信息/密码发送到邪恶的服务器完全没有任何困难。并且脚本可以为任何站点执行此操作。忽略试图解除/最小化此问题的其他答案。有两个问题:邪恶的脚本编写者将他们的邪恶文件放在userscripts.org上,脚本打破了greasemonkeys的沙箱,因此容易被黑客网站上的恶意代码使用,否则将被限制在同一域。

对于邪恶的脚本作者,您可以检查发送您的详细信息的代码的脚本;没什么好玩的。至少可以通过编辑'include / exclude'子句将脚本限制为特定站点。这并不能解决问题,但至少它不会发送您的银行凭据(除非您使用了相同的登录详细信息)。遗憾的是,没有'includexss'子句限制xss请求,这将有效地解决问题,因为,至关重要的是,即使对于非开发人员也很容易检查。 (Firefox插件“RequestPolicy”不会阻止用户脚本。)

不安全的脚本:寻找'unsafewindow'的任何使用。有other risky calls。安装脚本时,Greasemonkey不会警告您使用它们。使用这些调用并不意味着脚本不安全,只是脚本编写者最好擅长安全编程;这很困难,而且大部分都不是。我避免编写需要这些调用的脚本。有一些流行的高下载脚本使用这些调用。

Mozilla.org上的Firefox插件/插件与用户脚本有类似的问题,但至少它们已经过正式审查。审核/审核包括最重要的代码审核。然而,有一些聪明的技术可以避免在不需要混淆的情况下检测恶意代码。此外,插件可能托管在(任何人都不知道)被黑网站上。不幸的是,mozilla还列出了未经审查的“实验性”插件have had malicious code。你得到一个警告,但有多少人知道真正的意义。在我获得安全知识之前,我没有这样做。我从不安装这样的插件。

用户脚本未经过正式审核。除非脚本有很多安装,否则我会检查代码。即使这样,高安装脚本仍然可能已经抄袭了脚本编写者的帐户并修改了脚本。即使我检查一个脚本,使用反检测程序意味着我可能看不到邪恶。也许最好的办法是用“防篡改数据”firefox插件检查传出请求,但是一个聪明的脚本会延迟或不经常发送数据。不幸的是,这是一场战术战争。具有讽刺意味的是,只有微软基于证书的activeX对象真正接近开发人员可追溯性的真正解决方案(但还远远不够)。

确实,一个firefox插件让一个邪恶的玩家更容易接触到潜在的受害者,因为firefox插件通常更受欢迎,所以看起来更有可能成为目标,但是firefox审查过程使得用户脚本对邪恶的行为者更具吸引力因为他们没有经过审查。可以说,低下载用户仍然可以获得大量有价值的登录信息,直到被发现,同时还可以获得相对默默无闻和用户脚本社区流失率低的好处,以及任何人对代码进行代码审查的可能性较低。你不能依靠firefox插件的受欢迎程度来保护你免受恶意用户的攻击。

作为非开发人员,您依赖其他用户发现恶意脚本/插件。这有多大可能?谁知道。事实是,这是一个废话安全模型。

最终我使用firefox进行常规浏览,使用Google Chrome(不使用greasemonkey / plugins)进行管理。 Chrome还具有可用的“配置文件”功能(完全独立的浏览空间),这有点像使用不同的浏览器。我已经设置了三个chrome配置文件,让自己更安全:电子邮件/一般管理员,银行,ebay / paypal。 Firefox有无法使用的配置文件(根据我的经验)但我更喜欢firefox作为浏览器,这就是为什么我仍然使用它进行不加批判的浏览。配置文件还可以防止旧式浏览器安全漏洞和黑客攻击的网站,至少可以限制其范围。但请确保使用不同的密码。另一种方法是在USB记忆棒上安装干净的可启动ubuntu,用于关键管理员(请参阅此处http://www.geekconnection.org/remastersys/)。

Jetpacks的特殊信任模型,就像PGP信任网络一样,强调了这个问题的严重性,应该有希望减轻它。 Jetpack是firefox的新成员:一种超级油脂。