在 SqlCommand 中参数化列名
参数化查询对于防止 SQL 注入攻击和确保数据库操作的安全至关重要。然而,C# SqlCommand 在参数化列名称时提出了特殊的挑战。原始问题中提供的语法会导致错误,因为 SqlCommand 本身不支持列名称的参数化。
要解决此问题,建议在运行时动态构造查询。这涉及将列名与查询的其余部分连接起来。虽然这看起来不方便,但对于降低安全风险至关重要:
// IMPORTANT: Ensure "slot" is validated against a whitelist to prevent injection attacks SqlCommand command = new SqlCommand("SELECT [" + slot + "] FROM Users WHERE name=@name; ") prikaz.Parameters.AddWithValue("name", name);
通过动态构建查询,您可以有效地参数化列名称。请记住通过将所有用户输入列入白名单或验证所有用户输入来优先考虑安全性,以避免潜在的漏洞。
以上是如何在 C# SqlCommand 中参数化列名称?的详细内容。更多信息请关注PHP中文网其他相关文章!