CodeQL 文档

不安全的 SQL 连接

ID: cs/insecure-sql-connection
Kind: path-problem
Security severity: 7.5
Severity: error
Precision: medium
Tags:
   - security
   - external/cwe/cwe-327
Query suites:
   - csharp-security-extended.qls
   - csharp-security-and-quality.qls

点击查看 CodeQL 存储库中的查询

如果 SQL Server 连接的客户端未强制执行传输加密,则容易受到多种攻击,包括中间人攻击,这可能会危及用户凭据和/或 TDS 会话。

建议

通过在连接字符串中将 Encrypt 选项设置为 true,确保客户端代码强制执行该选项。

示例

以下示例显示了一个 SQL 连接字符串,该字符串未显式启用 Encrypt 设置来强制加密。

using System.Data.SqlClient;

// BAD, Encrypt not specified
string connectString =
    "Server=1.2.3.4;Database=Anything;Integrated Security=true;";
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(connectString);
var conn = new SqlConnection(builder.ConnectionString);

以下示例显示了一个 SQL 连接字符串,该字符串显式启用了 Encrypt 设置来强制执行传输加密。

using System.Data.SqlClient;

string connectString =
    "Server=1.2.3.4;Database=Anything;Integrated Security=true;;Encrypt=true;";
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(connectString);
var conn = new SqlConnection(builder.ConnectionString);

参考资料

  • ©2025GitHub 公司
  • 条款
  • 隐私