在尝试使用sql语句存储文本时接收sql注入攻击
问题描述:
我在数据库表中有一个类型为text的列。该列可以包含sql语句。 当我尝试将此文本插入到sql服务器时,我正在从机器上的反病毒软件instaleld获得sql注入攻击。在尝试使用sql语句存储文本时接收sql注入攻击
我如何转义文本以防止病毒感染它。
一个示例文本是:
"*By supplying a malformed @scriptfile parameter an attacker can run arbitrary
commands:
use master
declare @cmd nvarchar(4000)
exec sp_MScopyscriptfile N'c:\autoexec.bat" c:\cp.txt&echo hello >
c:\ccc.bbb & echo "hello',@cmd OUTPUT
print @cmd
The above query will copy the autoexec.bat file to cp.txt but also echo hello to a file called ccc.bbb.* "
答
我会尝试编码,你把它存储在数据库中不知何故之前的文本。像Rot13这样简单的应该做的伎俩。
答
使用参数。
所有的主RDBMS都可以在C#中使用它们。
+0
我在想他正在使用参数,但SQL服务器上运行的东西无论如何阻止了它(尽管我可能在这里读取的行数太多) – 2012-07-18 15:00:38
+0
我正在使用sqlbulkcopy插入数据表。该字符串是一个包含sql语句的合法字符串,但反病毒却认为我正在执行sql注入攻击。 – 2012-07-19 01:58:44
你现在插入的代码是什么? – 2012-07-18 13:57:05