5

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

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

4

4 回答 4

3

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

因此,理论上,它可能会造成与插件本身允许的一样多的损害,这通常是相当多的。

于 2013-03-19T15:57:29.157 回答
2

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

于 2013-03-19T15:51:27.987 回答
1

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

根据存储在其中的内容(例如用户身份验证令牌)以及系统的设计方式,可能会造成大量服务器端损坏。

于 2013-03-19T16:08:01.043 回答
1

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

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

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

于 2013-03-19T16:23:34.433 回答