外网服务器 上数据库 遭到攻击

数据库库的数据被修改,,,修改的是在表的每个字段内容后面加上一段代码,代码是什么什么贷款的链接,还是一个全英文的网站。

一次次的将我们数据改了,,改回来,要被改了,郁闷死了,,

一开始给机器换了一个密码,,还是木用,

数据库用的是sa用户,想要改sa的密码,上面说暂时不让该。。

数据就这样一次次被改。。

 是用什么方式攻击我们,,脚本注入还是连上我们的数据库?

从被修改的字段和表的内容来看,,很有可能是脚本注入,,注入的字段是在后台程序中添加修改的内容。

还在数据库里新建了两个表,表都是在凌晨创建的,呜呜。。。,表字段中值是没有任何意义混乱的字符。


彻底杜绝SQL注入 
 
1.不要使用sa用户连接数据库 
2、新建一个public权限数据库用户,并用这个用户访问数据库 
3、[角色]去掉角色public对sysobjects与syscolumns对象的select访问权限 
4、[用户]用户名称-> 右键-属性-权限-在sysobjects与syscolumns上面打“×” 
5、通过以下代码检测(失败表示权限正确,如能显示出来则表明权限太高): 
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   print   @c 
FETCH   NEXT   FROM   Table_Cursor   INTO   @T,@C   
END 
CLOSE   Table_Cursor 
DEALLOCATE   Table_Cursor  



1  还有 前台提交表单的时候 对非法字符进行过滤 。。。 参数用SqlParameter 过滤字符

2:那如果我们的sql数据库被批量注入代码要如何来清除呢?如果挨个的表去删除,那估计会把你累吐啊!这里可以分享一下批量清除sql数据库被注入的代码的方法:如果是sql server数据库,可以远程链接到数据库,使用查询分析器运行“update 数据库表 set 表的键值=replace(cast(表的键值 as varchar(8000)),'被注入的代码',' ')”这段代码就可以了,但是也要挨个表的去清除!select replace('love1 is love1,it come from heart','love1',' love2')

   太长的字符 替换难匹配

 

3:过滤特殊输入字符,搜索框禁止用户输入特殊字符, 改变数据库服务器还是被攻击。

4 http请求过滤参数








本文转载:CSDN博客