创建 ASP.NET 调试二进制文件可能会泄露敏感信息¶
ID: cs/web/debug-binary
Kind: problem
Security severity: 7.5
Severity: warning
Precision: very-high
Tags:
- security
- maintainability
- frameworks/asp.net
- external/cwe/cwe-11
- external/cwe/cwe-532
Query suites:
- csharp-code-scanning.qls
- csharp-security-extended.qls
- csharp-security-and-quality.qls
将“调试”版本部署到生产环境的 ASP.NET 应用程序可能会向最终用户泄露调试信息。此调试信息可能会帮助恶意用户攻击系统。使用调试标志还可能会影响性能,增加执行时间和内存使用量。
建议¶
如果此配置可能会在生产环境中使用,请从 Web.config
文件中删除“调试”标志。
示例¶
以下示例显示了 ASP.NET 的 Web.config
文件中设置为 true 的“调试”标志
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<compilation
defaultLanguage="c#"
debug="true"
/>
...
</system.web>
</configuration>
这将生成一个“调试”版本,最终用户可能会利用它。
要解决此问题,应将“调试”标志设置为 false
,或将其完全删除
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<compilation
defaultLanguage="c#"
/>
...
</system.web>
</configuration>
参考¶
MSDN:操作方法:为 ASP.NET 应用程序启用调试。
常见弱点枚举:CWE-11。
常见弱点枚举:CWE-532。