Closed NCrab1998 closed 3 years ago
你用的什么版本的? 你想下怎么实现SQL注入?
EFCore.Sharding.Oracle 3.1.10.5 以及最新的 5.x 都试过有这个问题;
EFCore.Sharding\DbAccessor\GenericDbAccessor.cs 50行 private string GetFormatedSchemaAndTableName(Type entityType) EFCore.Sharding\DbAccessor\GenericDbAccessor.cs 137行 string sql = $"UPDATE {tableName} SET {string.Join(",", propertySetStr)} WHERE {whereSql.sql}"; 都没见给"{tableName}"加别名
使用最新版试下,应该没问题的
await Db.UpdateSqlAsync(_w => mdfPlanIds.Contains(_w.PLAN_ID), ("AUDITING", UpdateType.Equal, "-1"));
而且mdfPlanIds为毛不是以参数形式传入,这不就有SQL注入风险了么