A-A+

数据库的安全防护

2013年01月23日 计算机技术 暂无评论 阅读 70 views 次

入侵者的目标,往往都是数据库,通过数据库获得管理员的密码及用户名信息,甚至通过数据库获得 Webshell,控制整个网站服务器。尤其是 SQL 数据库的安全性更重要,如果安全设置不慎,攻击者甚至可以直接通过 SQL 数据库完全获得服务器的控制。

一,Access 数据库防下载处理

当使用 Access 做后台数据库时,如果有入侵者通过暴库、文件包含、注入等各种方法,知道或者猜到了服务器的 Access 数据库的路径和数据库名称,那么攻击者能够下载这个 Access 数据库文件,这是非常危险的。

因此,一般情况下要更改默认的数据库文件名,为数据库文件名称起个复杂的非常规的名字,并把它放在比较深的文件目录下。另外可以为 Access 数据库文件加上打开密码。这里介绍一个最有效的防数据库下载设置技巧。

打开 IIS 网站属性设置对话窗口,选择“主目录”选项卡,单击[配置]按钮,打开“应用程序配置”对话窗口。在窗口中,单击[添加]按钮,在“可执行文件”中输入“c:windows\system32\inetsrv\asp.dll”,在“扩展名”中输入“.mdb”;勾选“限制为”项,并输入“禁止”,确定应用后完成设置即可。

以后当入侵者企图下载网站数据时,由于映射解析作用,数据库文件将会返回提示禁止访问。

二,SQL 数据库的配置

配置安全的数据库是很重要的,比如可以更改一下数据库中关键的表名、字段名,将其改为不易被猜解到的名字;另外要保护好管理员密码,将其设置得比较复杂,并通过 MD5 来加密用户密码,这样的话即使网站上不小心遗留下了 SQL 注入漏洞,入侵者也不可能很轻易就破解出网站的密码。

此外,对于 SQL 数据库,还应特别注意以下安全问题。

(1),删除不必要的扩展存储过程

利用 SQ Server 中的存储过程,入侵者可以很容易地构造相应的 SQL 语句,进行修改数据库、系统用户名、系统注册表等各种危害性极大的操作。因此有必要删除掉无用的存储过程,例如,当网站不需要可执行任意系统命令的扩展存储过程“xp_cmdshell”时,可以在 SQL 查询分析器中使用如下查询语句将其删除。

sp_dropextendedproc 'xp_cmdshell'

如果将来要恢复这个存储过程,可以使用语句:

sp_addetendedproc 'xp_cmdshell','xpsql70.dll'

另外,还可以去掉注册表访问的存储过程,以及其他危险的扩展存储过程,如:

Xp_regaddmultistring

Xp_regdeletekey

Xp_regdeletevalue

Xp_regenumvalues

Xp_regread

Xp_regremovemultistring

Xp_regwrite

(2),使用安全的数据库帐号

SQL Server 是各种网站系统中使用最多的数据库系统,数据库中往往存在着许多重要的信息,一旦数据库服务器遭受攻击后,后果不堪设想。

默认的 SA 用户具有对 SQL Server 数据库操作的全部权限,但是 SA 帐号的默认设置为空口令,以至于 SQL 服务器遭受 SA 空口令的攻击。因此一定要修改 SQL 安装时默认的 SA 空密码,需要为 SA 帐号设置一个复杂的口令。否则可能会给网站带来非常严重的灾难。

另外要严格控制数据库用户的权限,不要轻易给让用户对表有直接的查询、更改、插入、删除的权限,可以通过给用户以访问视图的权限,以及只具有执行存储过程的权限。在许多网站中给予一般用户连接数据库 SQL Server 或 MySQL 的权限都是 SA,这是非常危险的!其实对于一些主机使用的数据库应用时,只是用来做查询、修改等简单功能的,可以根据实际需要分配新的帐号,并给予用户能满足使用需要的有限权限就够了。一般来说可以设置网站用户连接时使用“public”权限的帐号就可以了。

(3) 对数据库服务器的安全连接

当入侵者通过注入获得了数据库连接文件中的内容时,很有可能使用文件中的数据库用户名和密码连接数据库服务哭,因此要保证数据库网络连接的安全机制。其中最重要的方法就是对连接数据库服务器的 IP 地址进行限制,只保证本地指定的 IP 能够访问,拒绝来自其他任何 IP 的连接。或者修改 SQL-Server 默认的 1433 端口,修改 MySQL 默认的 3306 端口等,也可以保证数据库服务器的安全。如果是在 MySQL 中,还可以通过设置配置文件 “my.ini”,以达到禁止 MYSQL 远程连接的功能。

标签:

给我留言