C#装配注射检查

Chr*_*eis 1 c# sql-server assemblies stored-procedures sql-injection

我在C#中为MS SQL 2005创建一个程序集.该程序集创建一个存储过程,并根据传递给存储过程的参数运行动态查询.

C#中是否有一个简单的函数来阻止SQL注入?

例如

string myQuery = "SELECT * FROM dbo.MyTable WHERE lastName = '" + injectionCheck(arg1) + "'";
Run Code Online (Sandbox Code Playgroud)

标准查询回答了这个问题......但是在无法构建真正动态查询的情况下,我可以在C#中使用什么来进行注入检查?

例如,这些可能不起作用:

使用@dbName;

SELECT*FROM @table

OPEN SYMMETRIC KEY @keyName

等等

Qua*_*noi 7

使用绑定参数:

SqlCommand cmd = new SqlCommand(myQuery, conn);
cmd.Parameters.Add("@lastname", SqlDbType.NVarChar, 10, lastName);
Run Code Online (Sandbox Code Playgroud)