阻止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