避免使用tablename查询SQL注入

cdu*_*dub 0 .net c# sql sql-injection sqlparameter

可能重复:
在.NET中的动态SQL中清理表/列名称?(防止SQL注入攻击)

我有这样的查询:

"SELECT * FROM MyTable_" + myID + " WHERE variable = @variable";
Run Code Online (Sandbox Code Playgroud)

SQL参数化适用于变量,但如何让它与表名一起使用?myID是我传入并更改的int(可以转换为字符串),但是如何防止sql注入?

Guf*_*ffa 5

只要myID是数字变量,它就不能包含任何有害代码.

您需要做的唯一其他事情是确保尝试读取不存在的表的错误消息不会泄漏有关数据库布局的信息,这可能有助于其他类型的攻击.