在debug ="true"中运行Web应用程序是否存在安全风险?

Tro*_*unt 9 asp.net security

有很多性能原因导致应用程序不应该以debug ="true"模式运行(来自Scott Gu的良好纲要),但是这种做法是否暴露了任何攻击媒介?这不是"你应该或不应该"的问题,很明显,这是一个问题,它是否引入了任何特定的漏洞.

我倾向于认为远程检测它的能力加上已知的性能问题可能导致对服务可用性的利用,但我想要更明确一些.有没有人知道可以针对运行debug ="true"的应用程序进行编排的特定攻击?

Tro*_*unt 5

我对这个问题有一些有趣的反馈,特别是在安全堆栈交换上.有很多与堆栈跟踪(自定义错误问题,而不是调试问题)和性能(不是[直接]安全问题)相关的响应.

最引人注目的响应是条件编译常量(#if DEBUG ...)可能会导致意外行为,但这又是一种功能风险(在实时环境中执行意外代码),而不是安全风险.

我怀疑调试模式可能会基于它在应用程序上的性能开销和远程检测它的能力(可能是服务连续性风险)打开一些其他漏洞的途径.我已经将我的结论写成了OWASP .NET开发人员排名前十的第6部分:安全性错误配置.

因此,为了完整起见,答案似乎是在调试模式下运行没有明显的安全风险,但鉴于上述因素,对于生产应用程序来说肯定不是一个好主意.