假设没有可用于修改某人电脑的浏览器端安全漏洞,我不明白如何使用eval
可能导致任何真正的威胁。javascript eval真的是一个安全威胁的大?
有人可以解释如何可能。有人可能会在用户的计算机上显示某些内容,但如果没有重定向或接受下载,则不会造成实际的伤害。服务器端不会造成任何损害,对吧?
假设没有可用于修改某人电脑的浏览器端安全漏洞,我不明白如何使用eval
可能导致任何真正的威胁。javascript eval真的是一个安全威胁的大?
有人可以解释如何可能。有人可能会在用户的计算机上显示某些内容,但如果没有重定向或接受下载,则不会造成实际的伤害。服务器端不会造成任何损害,对吧?
当您切换JavaScript的控制权时,不仅仅是它的执行可能会有害。使用Ajax,您可以将当前页面加载flash object或pdf或Java小程序。这将不会出现对话框,您将调用插件(它比浏览器本身拥有更多的权限)。
因此,从理论上讲,它可能会造成与插件本身所允许的一样多的损害,通常是相当多。存储在全局可访问的JavaScript变量(由你的代码,或第三方代码)
JavaScript提供了许多方法来使浏览器发送数据到服务器。他们可以利用来对服务器发起攻击(包括拒绝服务攻击)。
任何数据可传递给eval
代码。
根据存储在那里的内容(例如用户认证令牌)以及系统如何设计,可能会导致很多服务器端损坏。
因为eval可能会导致代码执行,所以它会在您的网站上创建一个漏洞,除非您100%控制该代码(这非常非常罕见,或者您不会考虑eval)。
此漏洞并不一定会影响您的服务器负,但它会影响您的用户非常重视,并在某些情况下,允许黑客盗取用户的cookies,可以访问他的会话,以及许多其他的事情。
一个简单的例子是eval执行恶意脚本,该恶意脚本会向您的服务器发送一条信息,其中包含服务器删除或更改用户数据的所有必要信息。由于请求实际上来自您的用户会话,因此这是完全有效的请求。
如果你的第一个假设是无法证明的,该怎么办?答案的价值有多重要? – flq 2013-03-19 15:51:16
'eval()'允许执行任意代码。您无法预测现在或将来可能会执行哪些任意代码。 – 2013-03-19 15:51:32