阻止SQL注入创建语句有意义吗?我怎么能这样做? 我想使用命令参数,但它不缝到工作:C#阻止SQL注入创建语句
实施例:
var createSql = "CREATE TABLE @TableName (@Column1 ...)";
var command = new SqlCommand();
command.CommandText = createSql;
command.Parameters.AddWithValue("@TableName", "XYZ");
command.Parameters.AddWithValue("@Column1", "Col");
// somewhere else
command.Connection = connection;
command.ExecuteNonReader(); // --> exception: invalid syntax at @TableName
编辑:取决于其他数据生成列和表名。间接也在用户输入,是的。给定的创建语句不完整。这只是一个例子。
我的问题是,它似乎命令参数不会被替换。
列名和表名来自哪里?用户输入? – Thilo
请参阅上面的修改。 – SACO