Stacktraces在实时网站上有危险吗?

时间:2010-01-19 09:00:36

标签: c# .net web sitecore

我们正在运行多个Sitecore网站,并且得到的反馈是,在收到错误时让网站用户可以使用堆栈跟踪可能会很危险。现在人们得到堆栈跟踪,网站会不会更容易被黑客攻击?

6 个答案:

答案 0 :(得分:10)

绝对弊大于利。根据案例中的异常情况,您将公开有关您的系统的信息,即有意图的访问者可能会用来查找漏洞。

例如,您的堆栈跟踪可能显示来自System.Data.Sql命名空间的错误,告诉该人将SQL Server作为此设置的一部分(与System.Data.MySql或Oracle相对,例如)。

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

所有想到的场景显然,或者是他们?....; - )

或多或少同意的第二种观点,here

答案 1 :(得分:2)

潜在。但它should never be an issue

答案 2 :(得分:0)

我认为离开堆栈跟踪可能有助于攻击者“描述”您的网站和相关软件。例如,如果他们看到数据库模块,他们就可以基于该数据库软件制造攻击。在这种情况下,通过默默无闻添加一些“安全性”可能会有所帮助,并且可以节省您的培根。 : - )

答案 3 :(得分:0)

我更喜欢将自动电子邮件发送给管理员或在某个地方登录而不向用户显示。将向用户显示一些信息错误的消息。

答案 4 :(得分:0)

他们应该登录主机,绝对不会向用户显示。用户应该看到错误的已清理且用户友好的普通语言版本。

答案 5 :(得分:0)

它肯定有害,因为可以用来对付你。举个例子来看这个代码

Session [“user”] = userName; if(“denied”!= getPermission(Session [“user”]))    重定向(“登录错误”)

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

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