如何准备 sql 查询以防止非常量 SQL 错误
在下面的 sql 查询构造中,我在运行时发送表名和连接字符串,这使我在 C# 中准备这样的查询,
using (var cmd = new NpgsqlCommand($@"CREATE TABLE IF NOT EXISTS {table} (
Name VARCHAR(250));", connection))
{
await cmd.ExecuteNonQueryAsync();
}
在静态代码分析扫描中,我收到此错误 Non-constant SQL
错误以下是建议,
使用以下方法之一:使用查询准备 API 安全地构造包含用户提供的值的 SQL 查询。仅当已根据安全字符串值白名单进行检查时,才将用户提供的值连接到查询中,或者它是否必须是布尔或数字类型。
这意味着什么以及如何在 C# 中准备这样的 SQL 查询?
In below sql query construction I am sending table-name and connection-string during run time which makes me prepare query like this in C#,
using (var cmd = new NpgsqlCommand($@"CREATE TABLE IF NOT EXISTS {table} (
Name VARCHAR(250));", connection))
{
await cmd.ExecuteNonQueryAsync();
}
In static code analysis scan I am getting this as Non-constant SQL
error and below is the suggestion,
Use one of the following methods:Use a query-preparation API to safely construct the SQL query containing user-supplied values.Only concatenate a user-supplied value into a query if it has been checked against a whitelist of safe string values, or if it must be a Boolean or numeric type.
What this mean and how to prepare such SQL query in C#?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论