logo

如何防止SQL Server 批量注入

 

在管理虚拟服务器期间发现部分数据库上的很多字段都被注入相同或者不同的
几种木马代码,我们如何防止,下面设置数据库使之无法批量注入代码。
1) 不要在网站上使用sa 用户访问数据库
2) 创建具有public 权限的数据库用户,并使用这个用户访问数据库
3) 在网站所使用的数据库的角色中去掉public 角色对sysobjects 与
syscolumns 对象的select 访问权限,如下图所示

在public 角色上右键->属性,打开“数据库角色属性”对话框,如下图所示

在“数据库角色属性”对话框中点击“权限”按纽,打开如下窗口

在打开的对话框中选择“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

下图是没有设置之前的执行结果

 到此我们已经禁止SQL Server 数据库被批量挂马。

Leave your needs and contact information