在我读过的一些书中,据说隐藏黄色死亡屏幕(显然)是好的,但不仅仅是因为它对用户来说是非正式的,而且还因为黑客可以使用这些信息来破解你的网站。
我的问题是这个。黑客如何使用这些信息? .NET调用堆栈的基本操作的调用堆栈如何帮助黑客?
我附上了我在很久以前创建的一个网站上遇到的黄色死亡屏幕,这引起了我的兴趣。 (错误是它在尝试将查询字符串参数强制转换为int时失败。是的,我知道它的错误代码,我多年前写过它;)
答案 0 :(得分:3)
如果您正在编写安全代码,YSOD不应该为黑客提供破解您的应用程序的能力。但是,如果您的代码不安全,那么YSOD可以为攻击者提供必要的信息以允许他们进行攻击。
比如说,你已经编写了自己的论坛软件。您已经为用户编写帖子以防止XSS攻击等进行了大量验证,但您的验证有误。如果黑客在发帖时可以显示YSOD,则显示的堆栈跟踪可能会显示验证中的裂缝,并利用它们创建XSS攻击或获取成员详细信息或密码等。
YSOD本身并不构成威胁,但对于黑客而言,它可能是一种在应用程序安全性中找到缺陷的非常有用的方法。
答案 1 :(得分:2)
这有几种不同的方式可能会损害您的应用程序......但是大多数方法只会使更容易进行攻击......漏洞可能已经存在。例如,您可以轻松地显示硬编码的密码或盐,或者显示一行代码接受用户输入而不对其进行适当的消毒。
答案 2 :(得分:1)
正如其他人所提到的,YSOD本身不一定总是对黑客有帮助,但假设你的第13行:在上面的代码中你有你的硬编码连接字符串或内联sql查询。
我现在从你的YSOD中知道你的查询中的“id”实际上是artId而不是任何可能对黑客有用的randorm id号。
此外,如果黑客能够获得多个不同的YSOD,它可能会显示更多信息,足以损坏您的应用。
有时候MS报告security vulnerability with ASP.NET,其中提供的解决方法是启用CustomErrors并向用户隐藏错误代码和任何特定错误相关的详细信息。
答案 3 :(得分:0)
尚未提及的一件事是,攻击者现在有充分的理由相信您正在使用MySql数据库(否则他们不太可能猜测ASP.NET应用程序),帮助他们缩小潜在攻击的范围。没有必要让他们的工作比以前更容易。