c# - DataTable.Select 需要 SQL 注入(inject)保护吗?

标签 c# .net database vb.net

我想让用户能够将自定义筛选器应用于 System.Data.DataTable。 目前我有一个非常简单的函数,如下所示:

   Dim result = dataTable.Select(txtUserInput.Text)

使用过滤后的结果我想做进一步的操作(例如数据库更新/删除)。

是否需要 sql 注入(inject)保护或“选择”功能是否安全?

谢谢

//编辑: 主要问题是:是否可以滥用“select”函数来操作数据表中的任何数据、执行代码……?如果唯一的危险是此函数可以返回更多/更少的数据,则没有问题。但是,如果数据集中的数据被损坏,那就是一个真正的问题。

最佳答案

在那种情况下您不需要保护 - DataTable.Select 正在对该 DataTable 中保存在内存中的 DataRows 应用过滤器,它实际上并没有连接到数据库/对数据库执行任何操作。

如果您获取用户输入并将其构建到 SQL 语句中,然后针对数据库执行,例如最初填充数据表。在这种情况下,最好的办法是参数化语句。

关于c# - DataTable.Select 需要 SQL 注入(inject)保护吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9309753/

相关文章:

c# - 使用 linq Skip 和 Take 显示记录时如何避免重复输入

c# - 如何使 String.Contains 不区分大小写?

.net - 是什么原因导致 .NET ToolTip 无法再次工作?

c# - Generics & Reflection - GenericArguments[0] 违反类型约束

c# - 如何记录复杂的同步过程?

php - 需要有关使用 PHP 在 mysql 数据库中插入逗号分隔数据的帮助

java - HQL select 子句中的多个选择

c# - 设置asp :CustomValidator text from codebehind

c# - 使用 StackExchange.Redis 从 Redis 进行原子读取和删除

c# - 计算三角多边形网格中的孔