« 上一篇下一篇 »

如何提高MySQL数据库的安全性

安全性对于网站来说是非常重要的,尤其是在开始连接MySQL数据库到网站的时候,那么我们将采取什么措施来提高MySQL数据库的安全性呢?

        一.从操作系统角度来保护MySQL

       如果正在运行类似于UNIX的操作系统,那么以root用户的身份运行MySQL服务器是一个糟糕的主意。因为,这可能赋予了一个MySQL普通用户读写操作系统任何地方的文件的权限。这一点很重要,却又容易被忽略,它是曾经用来攻击Apache网站的某种著名方法。
  
       创建一个专门用来运行mysqld的特定MySQL用户是一个好主意。此外还能建立只由MySQL用户访问的目录。在许多安装方式中,服务器都是设置为以MySQL组中的userid为mysql的用户来运行服务器的。

       然而,更为理想的方法是,将MySQL服务器建立在防火墙之后。这样,MySQL服务器就可以终止来自未授权机器上的连接;检查一下是否可服从服务器之外,以端口号为3306的方式连接MySQL。这是MySQL运行的默认端口,可以在防火墙中关闭。

       二.密码

       必须确认所有用户都有密码并且要选好这些密码,定期修改,与使用操作系统密码一样。并且请记住数字和字母相结合是最好的方案。

       如果要在脚本中保存密码,请确认只有密码保存在该脚本中的用户可以阅读该脚本。用俩连接数据库PHP脚本需要能够访问的那个用户的密码。将登录名和密码保存在一个PHP脚本可能是安全的的。这样可以在需要的时候包含这个文件。这个脚本必须小心地保存在Web文档结构以外,并且只能由特定的用户进行访问。

       不要以纯文本的形式将密码保存与数据库中。MySQL密码不是这样保存的,但是在Web应用程序中通常也要保存网站用户的注册名和密码。可以用MySQL密码的SHAL()函数将密码加密一后在进行保存。但是要注意,如果在运行SELECT的时候,以这些格式之一使用INSERT插入一个密码到。必须再次使用相同的函数来检查用户输入的密码。

       三.用户权限

       请确认你已经了解了MySQL的权限系统之,以及授于特定权限的后果。否则就不要收于任何用户不必要的权限,并且最好还应该查看grant表来确认一下。

       四.Web问题

       当连接MySQL数据库到网络的时候,一些特殊的问题就产生了。因此,我们应该经常检查来自用户的所有数据。即使HTML表单中有选框和按钮组成,一些人还是可以通过企图修改URL以进入脚本。还应检查用户数据的大小。

       如果用户输入的密码或机密数据需要保存在数据库中,就要注意,如果不适用SSL,这些数据将以纯文本的方式从浏览器传递到服务器。

       通过以上四点来介绍了我们要怎样提高MySQL数据库的安全性,提高安全性既是对用户负责又是对自己网站负责。

« 上一篇下一篇 »