javascript的潜在恶意使用?

javascript的潜在恶意使用?,javascript,Javascript,在Firefox6中,由于facebook上最近的脚本等安全风险,您不能再将javascript放在地址栏中。我知道它可以模拟任何你可以点击的东西,比如删除好友和垃圾贴,但是最糟糕的是什么呢?由于禁用了跨域iframe javascript,它只能操作您所在的页面,除非它基于cookie数据发送XMLHttpRequest facebook上的脚本到底是做了什么使它成为如此大的问题?最糟糕的是什么?Javascript可以做任何你能做的事情 例如,在Facebook上,它可以操纵朋友和帖子 在魔

在Firefox6中,由于facebook上最近的脚本等安全风险,您不能再将javascript放在地址栏中。我知道它可以模拟任何你可以点击的东西,比如删除好友和垃圾贴,但是最糟糕的是什么呢?由于禁用了跨域iframe javascript,它只能操作您所在的页面,除非它基于cookie数据发送XMLHttpRequest


facebook上的脚本到底是做了什么使它成为如此大的问题?最糟糕的是什么?

Javascript可以做任何你能做的事情

例如,在Facebook上,它可以操纵朋友和帖子

在魔兽世界上,它可以把你所有的钱和物品交给脚本的创建者

在你的银行上(这是不太可能的,因为银行不会有要求人们运行
javascript:
url的帖子),它可以清空你的银行账户

在任何站点上,它也可能在站点内创建一个假登录表单,将您的凭据发送到恶意服务器。
一个非常聪明的恶意脚本几乎可以在不可检测的情况下(通过处理链接点击和使用HTML5地址栏API)做到这一点

由于跨域,它只能操作您所在的页面

错。如果攻击者能够说服您在URL栏中键入一段JavaScript,那么他们也可能说服您访问任何页面。我认为最糟糕的情况可能是,攻击者成功授予他或她额外的权限,以便稍后利用,或获取您的联系人列表或个人详细信息,这些信息可能用于后续的社会工程攻击


不过,底线是,这种攻击能够以您当前拥有的任何级别的授权运行代码。因此,如果你登录到一个网站,无论你在该网站上做什么,攻击者也可以做什么。事实上,这也是更改密码或授予额外帐户访问权限几乎总是要求用户重新验证的原因之一,即使用户已经登录。(因为JavaScript将无法为您登录,除非攻击者已经拥有您的凭据,这将使此类攻击变得毫无意义。因此,这将防止攻击者以不可见的方式向他或她提供额外凭据或将您的密码更改为他/她控制的凭据。)白/灰帽子黑客可以做什么: http://userscripts.org/tags/facebook

黑帽黑客可以做什么: (没有测试,只是从谷歌获得) 我知道在一次CTF竞赛中,我能够通过嵌入带有图像的脚本来检索帐户电子邮件,尽管这是一次低级竞赛,所以安全性可能比facebook差

有趣的是,制作类似于facebook和社交工程师的东西来登录比破解他们的真实facebook要容易得多。同样在android上,你可以在facebook上弹出一个不可见的巢穴来拦截密码。禁用javascript并不能解决很多问题。

通常的响应是

如果人们愚蠢到在计算机上运行不可信的代码, 他们得到了应得的

但是人们可能不知道他们正在运行不受信任的代码,也不知道它能做什么。删除javscript伪协议是浪费时间


更好的方法是教育用户可以从书签和地址栏运行脚本,并且这些脚本拥有作为用户所拥有的所有权限。浏览器可以区分地址栏脚本是键入、复制和粘贴的,还是来自书签,并警告用户即将发生的事情(很像状态栏告诉您链接将发送到哪里)。

我不会问您为什么知道第二点。@Walkereo:我甚至不玩WoW。但是,Javascript可以做任何你能做的事情(除了键入密码),因此它也可以提供项目。此外,如果你在银行网站上将Javascript粘贴到URL中,你应该清空帐户。这就是为什么我说不太可能。谢谢,关于登录的是真的,我没有想到。是的(希望如此)要说服用户访问URL然后粘贴到Javascript中要困难得多。特别是如果该URL是一个高值目标。@SLaks,考虑到说服用户安装具有过多权限的附加组件和扩展是多么容易,我认为说服用户访问URL然后通过JavaScript URL不会太困难。确切地说,你打算教育用户吗?这就像适者生存一样。@SLaks-一般来说,教育用户不是我个人的责任,但是当我有机会或认为他们会受益时,我会尝试教育人们基本的互联网安全。拥有知识和经验的人有责任将其提供给整个社区,使其受益——“为了更大的利益”等等是的,但那是非常困难而且可能不可能的。“非常困难而且可能不可能”做什么?教育用户?他们究竟如何生存?