针对SQL INJECTION的SQL SERVER安全设置初级篇

北漂971

北漂971

2016-01-29 16:36

针对SQL INJECTION的SQL SERVER安全设置初级篇,针对SQL INJECTION的SQL SERVER安全设置初级篇
 

日前SQL INJECTION的攻击测试愈演愈烈,很多大型的网站和论坛都相继被注入。这些网站一般使用的多为SQL SERVER数据库,正因为如此,很多人开始怀疑SQL SERVER的安全性。其实SQL SERVER 2000已经通过了美国政府的C2级安全认证-这是该行业所能拥有的最高认证级别,所以使用SQL SERVER还是相当的安全的。当然和ORCAL、DB2等还是有差距,但是SQL SERVER的易用性和广泛性还是能成为我们继续使用下去的理由。那怎么样才能使SQL SERVER的设置让人使用的放心呢?

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/sqlserver/)

第一步肯定是打上SQL SERVER最新的安全补丁,现在补丁已经出到了SP3。下载地址:http://www.microsoft.com/sql/downloads/2000/sp3.asp。如果这一步都没有做好,那我们也没有继续下去的必要了。

第二步是修改默认的1433端口,并且将SQL SERVER隐藏。这样能禁止对试图枚举网络上现有的 SQL Server 客户端所发出的广播作出响应。另外,还需要在TCP/IP筛选中将1433端口屏蔽掉,尽可能的隐藏你的SQL SERVER数据库。这样子一但让攻击创建了SQL SERVER的账号,也不能马上使用查询分析器远程登陆来进行下一步的攻击。单从ASP,PHP等页面构造恶意语句的话,还有需要查看返回值的问题,总比不上直接查询分析器来得利落。所以我们首先要做到即使让别人注入了,也不能让攻击者下一步做得顺当。修改方法:企业管理器 -- 你的数据库组 -- 属性 -- 常规 -- 网络配置 -- TCP/IP -- 属性 ,在这儿将你的默认端口进行修改,和SQL SERVER的隐藏。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/sqlserver/)

第三步是很重要的一步,SQL INJECTION往往在WEB CODE中产生。而做为系统管理员或者数据库管理员,总不能常常的去看每一段代码。即使常常看代码,也不能保证我们在上面的疏忽。那怎么办?我们就要从数据库角色着手,让数据库用户的权限划分到最低点。SQL SERVER的默认权限让人真的很头疼,权限大得非常的高,权限小的又什么都做不了,SYSADMIN和db_owner真是让人又爱又恨。攻击者一但确认了网站存在SQL INJECTION漏洞,肯定有一步操作步骤就是测试网站的SQL SERVER使用者具有多大的权限。一般都会借助SELECT IS_SRVROLEMEMBER('sysadmin'),或者SELECT IS_MEMBER('db_owner'),再或者用user = 0(让字符和数字进行比较,SQL SERVER就会提示了错误信息,从该信息中即可知道一些敏感信息)等语句进行测试。方法还有,我也不敢多说了。其一怕错,其二怕联盟中的人扁。在当前,如果网站的数据库使用者用的是SA权限,再加上确认了WEB所处在的绝对路径,那么就宣告了你的网站的OVER。db_owner权限也一样,如果确认了绝对路径,那么有50%的机会能给你的机器中上WEB 方式的木马,如海阳等。所以这儿我们确认了一点,我们必须要创建自已的权限,让攻击者找不着下嘴的地方。在这儿引用一个SQL SERVER联机帮助中的例子:

创建 SQL Server 数据库角色的方法(企业管理器)
创建 SQL Server 数据库角色
1.        展开服务器组,然后展开服务器。
2.        展开"数据库"文件夹,然后展开要在其中创建角色的数据库。
3.        右击"角色",然后单击"新建数据库角色"命令。
4.        在"名称"框中输入新角色的名称。
5.        单击"添加"将成员添加到"标准角色"列表中,然后单击要添加的一个或多个用户。(可选)
只有选定数据库中的用户才能被添加到角色中。

对象权限
处理数据或执行过程时需要称为对象权限的权限类别:
·        SELECT、INSERT、UPDATE 和 DELETE 语句权限,它们可以应用到整个表或视图中。
·        SELECT 和 UPDATE 语句权限,它们可以有选择性地应用到表或视图中的单个列上。
·        SELECT 权限,它们可以应用到用户定义函数。
·        INSERT 和 DELETE 语句权限,它们会影响整行,因此只可以应用到表或视图中,而不能应用到单个列上。
·        EXECUTE 语句权限,它们可以影响存储过程和函数。

语句权限
创建数据库或数据库中的项(如表或存储过程)所涉及的活动要求另一类称为语句权限的权限。例如,如果用户必须能够在数据库中创建表,则应该向该用户授予 CREATE TABLE 语句权限。语句权限(如 CREATE DATABASE)适用于语句自身,而不适用于数据库中定义的特定对象。
语句权限有:
·        BACKUP DATABASE
·        BACKUP LOG
·        CREATE DATABASE
·        CREATE DEFAULT
·     &nbs

展开更多 50%)
分享

猜你喜欢

针对SQL INJECTION的SQL SERVER安全设置初级篇

SQLServer
针对SQL INJECTION的SQL SERVER安全设置初级篇

SQL Server安全专题:SQL Server 2000的安全配置

编程语言 网络编程
SQL Server安全专题:SQL Server 2000的安全配置

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Advanced SQL Injection with MySQL

编程语言 网络编程
Advanced SQL Injection with MySQL

SQL Server 2000的安全配置

SQLServer
SQL Server 2000的安全配置

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

SQL Server:安全设计从头起

SQLServer
SQL Server:安全设计从头起

Microsoft SQL Server 安全问题

编程语言 网络编程
Microsoft SQL Server 安全问题

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Oracle8的不安全因素及几点说明

Oracle8的不安全因素及几点说明

防火墙的技术与应用-选购和应用(14)

防火墙的技术与应用-选购和应用(14)
下拉加载更多内容 ↓