通过传输数据泄露信息¶
ID: cs/sensitive-data-transmission
Kind: path-problem
Security severity: 4.3
Severity: error
Precision: high
Tags:
- security
- external/cwe/cwe-201
Query suites:
- csharp-code-scanning.qls
- csharp-security-extended.qls
- csharp-security-and-quality.qls
向用户传输敏感数据存在潜在的安全风险。始终确保传输的数据是供用户使用的。例如,通常不应将密码和数据库异常的内容发送给用户,因为它们会泄露可能被滥用或利用的信息。
建议¶
避免向用户传输密码或异常。而是创建一个对用户更友好的消息,其中不包含潜在的敏感信息。技术错误应写入日志文件。
示例¶
以下示例显示了用户密码被发送回给用户。
public class Handler : IHttpHandler
{
public void ProcessRequest(HttpContext ctx)
{
try
{
...
}
catch (AuthenticationFailure ex)
{
ctx.Response.Write("Invalid password: " + password);
}
}
}
以下示例显示了发送给用户的数据库异常。异常通常包含用户不应该看到的、不必要的技术或敏感信息。
public class Handler : IHttpHandler
{
public void ProcessRequest(HttpContext ctx)
{
try
{
...
}
catch (DbException ex)
{
ctx.Response.Write("Database error: " + ex.Message);
}
}
}