【发布时间】:2023-02-03 21:27:13
【问题描述】:
Type entryEntityType = entry.Entity.GetType();
string tableName = GetTableName(entryEntityType);
string primaryKeyName = GetPrimaryKeyName(entryEntityType);
string deletequery = string.Format("UPDATE {0} SET IsDeleted = 1 WHERE {1} = @id", tableName, primaryKeyName);
Database.ExecuteSqlCommand(deletequery, new SqlParameter("@id", entry.OriginalValues[primaryKeyName]));
在运行上述查询的声纳扫描后,为 sql 注入提供了一个安全热点。如何处理?
【问题讨论】:
-
您应该为每个参数使用 SQL 参数(用 @ 前缀表示)以避免 SQL 注入。 w3schools.com/sql/sql_injection.asp
标签: c# sql entity-framework sqlcommand format-string