【问题标题】:Is javascript eval really that big of a security threat? [duplicate]javascript eval 真的有那么大的安全威胁吗? [复制]
【发布时间】:2013-03-08 09:37:41
【问题描述】:

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

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

【问题讨论】:

  • 如果您的第一个假设无法证明怎么办?答案的价值有多大?
  • eval() 允许执行任意代码。您无法预测任意代码现在或将来会做什么。

标签: javascript eval


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-06-19
          • 1970-01-01
          相关资源
          最近更新 更多