javascript eval真的有那么大的安全威胁吗?

Is javascript eval really that big of a security threat?

本文关键字:安全 威胁 eval 真的 javascript      更新时间:2023-09-26

假设没有浏览器端安全漏洞可以用来修改某人的计算机,我不明白使用eval怎么会导致任何真正的威胁。

谁能解释一下这是怎么可能的?有人可以在用户的计算机上显示某些内容,但如果没有重定向或接受下载,就不会造成真正的危害。服务器端不可能受到损害,对吧?

当您移交JavaScript的控制权时,可能有害的不仅仅是它的执行。使用Ajax,您可以将flash对象、pdf或Java applet加载到当前页面本身。这将不会显示对话框,并且您将调用插件(它具有比浏览器本身更多的特权)。

所以,从理论上讲,它可能会造成插件本身允许的最大损害,通常是相当多。

JavaScript提供了多种方式使浏览器向服务器发送数据。可以利用它们对服务器发起攻击(包括拒绝服务攻击)。

因为eval可以导致代码执行,它会在您的站点上创建一个漏洞,除非您100%控制该代码(这是非常非常罕见的,否则您无论如何都不会考虑eval)。

此漏洞不一定会对您的服务器产生负面影响,但它会非常严重地影响您的用户,并且在某些情况下允许黑客窃取您的用户的cookie,访问他的会话,以及许多其他事情。

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

存储在全局可访问的JavaScript变量中的任何数据(由您的代码或第三方代码)都可用于传递给eval的代码。

根据存储在那里的内容(例如用户身份验证令牌)和系统的设计方式,可能会造成许多服务器端损害。