小编Fol*_*ten的帖子

C#/.NET(核心):类型系统是否足够安全以防止SQL注入?

我正在开发一个使用EF Core的项目; 在一个特定情况下,我必须使用原始SQLite命令更新实体的标识.

构建一个SqlCommand并执行它由于某种原因不起作用,以及直接传递参数ExecuteSqlCommand(),它总是抛出异常(我猜这是当前Sqlite驱动程序中的一个错误).

但是,从理论上讲,不应该使用以下代码

string commandText = $"UPDATE {table} SET Id={idPair.Value} WHERE Id={idPair.Key};";
Run Code Online (Sandbox Code Playgroud)

已经阻止了SQL注入,因为这里

  • table 是我直接从DbContext模型中获得的表名
  • idPair 是一个保证是一个 KeyValuePair<int, int>

我主要是因为我不知道是否应该禁止这个特定警告,或者尝试以另一种方式执行此操作(无论如何打开关于EntityFrameworkCore.Sqlite的错误报告都在待办事项列表中).

.net c# .net-core

2
推荐指数
1
解决办法
356
查看次数

标签 统计

.net ×1

.net-core ×1

c# ×1