代码之家  ›  专栏  ›  技术社区  ›  Younes

StackTraces在现场网站上很危险?

  •  3
  • Younes  · 技术社区  · 15 年前

    我们正在运行多个SiteCore网站,刚收到反馈,指出当出现错误时,向网站用户提供StackTrace可能很危险。当人们得到stacktrace后,该网站对黑客的攻击会更大吗?

    6 回复  |  直到 6 年前
        1
  •  10
  •   Bartłomiej Mucha    11 年前

    它绝对弊大于利。根据案例中的例外情况,您将公开有关系统的信息,恶意访问者可以使用这些信息来查找漏洞。

    例如,堆栈跟踪可能显示来自system.data.sql命名空间的错误,告诉用户SQL Server将作为此设置的一部分被找到(例如,与system.data.mysql或oracle相反)。

    它还告诉该人在导致错误时正在进行哪些.NET调用。现在为了争论,假设其中一个漏洞只有这个人知道——然后可以利用它来获取访问权限。

    很明显,所有的场景都是经过深思熟虑的,还是?…;-)

    第二种意见或多或少同意, here .

        2
  •  2
  •   Cœur N0mi    6 年前

    潜在地。但它 should never be an issue .

        3
  •  0
  •   jeremiah    15 年前

    我认为留下stacktrace可能有助于攻击者“分析”您的网站和相关软件。例如,如果他们看到一个数据库模块,他们就可以基于该数据库软件进行攻击。在这种情况下,增加一点“默默无闻的安全性”可能会有所帮助,并可能挽救你的培根。-)

        4
  •  0
  •   geekonweb    15 年前

    我更喜欢一封自动发送给管理员的电子邮件,或者在不向用户显示的情况下登录到某个地方。将向用户显示一些信息性消息,说明发生了故障。

        5
  •  0
  •   L. Cornelius Dol    15 年前

    它们应该登录到主机上,绝对不会显示给用户。用户应该看到经过清理和用户友好的纯语言版本的错误。

        6
  •  0
  •   Rune FS    15 年前

    它绝对是有害的,因为它可以用来对付你。以这段代码为例

    session[“用户”]=用户名; 如果(否认)!=GetPermission(会话[“用户”]) 重定向(“登录错误”)

    我知道堆栈跟踪中没有显示这一点,但它是一个常见的安全漏洞,现在它与向可能的黑客提供有关如何(或至少在何处)引发异常的信息相结合。如果他可以在调用GetPermission时使用该信息导致异常,那么他将不再被重定向。当然,如果代码块中没有try-catch,他可能无法访问(但也许他会在所有堆栈跟踪之后显示用户存储在会话中)

    只有堆栈跟踪通常没有那么危险,但是与更多的信息结合起来,它们会削弱您的安全系统。