11-系统信息泄露缺陷
2025/1/1大约 2 分钟安全开发安全开发应用安全
系统信息泄露缺陷 - 腾讯安全代码审计实战系列11
系统信息泄露是指通过不当的输出、日志记录或错误信息暴露了敏感的系统信息,比如数据库连接字符串、栈追踪、操作系统信息等。这些信息可能被攻击者利用,导致进一步的攻击。
修复建议
- 避免在输出、日志和错误消息中包含敏感的系统信息。
- 错误消息应简洁,不暴露系统架构或实现细节。
- 使用安全的日志管理策略,确保敏感信息不被记录或显示。
- 定期审查和清理日志文件,确保其中不含敏感信息。
示例代码
// bad:在异常信息中包含敏感系统信息
public void HandleException(Exception ex) {
string sensitiveInfo = "Operating System: Windows 10"; // 敏感信息
Exception newException = new Exception(sensitiveInfo, ex); // 不安全的行为,将敏感信息包含在异常中
throw newException;
}
// good:避免在异常信息中包含敏感系统信息
public void HandleException(Exception ex) {
string message = "An error occurred during operation."; // 安全的行为,仅输出通用错误信息
Exception newException = new Exception(message, ex);
throw newException;
}
// good:不将系统敏感信息包含在异常中,通过安全的日志管理记录
public void HandleException(Exception ex) {
LogError(ex); // 将异常记录到安全的日志管理中
}
private void LogError(Exception ex) {
// 使用安全的日志框架记录错误信息
Console.WriteLine("Error logged with safe logging mechanism");
}