2013-03-19 78 views
4

假设没有可用于修改某人电脑的浏览器端安全漏洞,我不明白如何使用eval可能导致任何真正的威胁。javascript eval真的是一个安全威胁的大?

有人可以解释如何可能。有人可能会在用户的计算机上显示某些内容,但如果没有重定向或接受下载,则不会造成实际的伤害。服务器端不会造成任何损害,对吧?

+1

如果你的第一个假设是无法证明的,该怎么办?答案的价值有多重要? – flq 2013-03-19 15:51:16

+1

'eval()'允许执行任意代码。您无法预测现在或将来可能会执行哪些任意代码。 – 2013-03-19 15:51:32

回答

3

当您切换JavaScript的控制权时,不仅仅是它的执行可能会有害。使用Ajax,您可以将当前页面加载flash object或pdf或Java小程序。这将不会出现对话框,您将调用插件(它比浏览器本身拥有更多的权限)。

因此,从理论上讲,它可能会造成与插件本身所允许的一样多的损害,通常是相当多。存储在全局可访问的JavaScript变量(由你的代码,或第三方代码)

2

JavaScript提供了许多方法来使浏览器发送数据到服务器。他们可以利用来对服务器发起攻击(包括拒绝服务攻击)。

1

任何数据可传递给eval代码。

根据存储在那里的内容(例如用户认证令牌)以及系统如何设计,可能会导致很多服务器端损坏。

1

因为eval可能会导致代码执行,所以它会在您的网站上创建一个漏洞,除非您100%控制该代码(这非常非常罕见,或者您不会考虑eval)。

此漏洞并不一定会影响您的服务器负,但它会影响您的用户非常重视,并在某些情况下,允许黑客盗取用户的cookies,可以访问他的会话,以及许多其他的事情。

一个简单的例子是eval执行恶意脚本,该恶意脚本会向您的服务器发送一条信息,其中包含服务器删除或更改用户数据的所有必要信息。由于请求实际上来自您的用户会话,因此这是完全有效的请求。