站长论坛
标题:
MySQL安全基本介绍
[打印本页]
作者:
tznktg
时间:
2007-9-21 20:22
标题:
MySQL安全基本介绍
主要是将自己在学习php的过程中遇到的涉及MySQL的安全问题以及解决方法写出来,算是个人的一点愚见,在此过程中看了不少的参考资料,因此本文中的一些观点以及技巧就是出于这些资料,由于参考太多,故不能给出原作出处,望大家见谅。
我们使用php作为连接MySQL的语言,所以简单介绍一下php。php作为动态站点的一种开发语言,可以作为apache的模块运行,来编写CGI,访问文档,执行命令或是打开网络连接等等。相对于asp连说,具有更好的安全性,因为asp的安全性不仅依赖于编程的安全性,还依赖于IIS的安全性,但是为php提供支持的apache的安全性在业界有很好的口碑。另外,asp文档在服务器上面以源文件的方式存放,php则可以使用第三方软件(如zend encode)来对其进行编码,而不至于泄漏源文件。至于php其他方面的好处,大家都应该看得很多了,我在此就没有必要重复了。
下面我介绍一下MySQL。MySQL是一个关系数据库管理系统(SDBMS),主要应用于中小型企业,虽然功能较弱,但是它是一款免费软件,这弥补了功能上的缺点。相关的开发书籍也是挺多的,但是多介绍的是如何使用MySQL,在安全性上面介绍得不多。我将着重介绍一下如何安全的使用MySQL。
首先是数据文件的安全问题。如果数据文件存放在一个不安全的地方,那还有什么安全性好谈?人们不是常说能够被物理上访问的计算机肯定不是安全的计算机,那么能被所有用户访问的数据文件也谈不上什么安全性,我们可以对数据文件加上一定的权限,比如利用操作系统的权限,在2000中利用NTFS的特性禁止所有用户对数据文件都能进行完全操作,在linux/unix下面用chmod来更改文件的权限。我们还可以利用MySQL自己的权限对数据进行访问控制,没有必要为每一位用户赋予所有的权限,如果用户只需要用到select就可以,那么就没有必要给它drop或是delete的权限,最大安全就是最小的权限加上最少的服务。如果有可能,为每一个用户量身设计权限。
其次是数据的存放形式的问题。现在有一部分开发人员将密码等保密信息以明文的形式存放于数据库中,这样的话主要有人对该数据库有访问权限,那么密码将失去意义。我们可以做点事情来改善这种情况,对,加密。可以自己编写加密的函数,也可以使用系统加密函数,不管是php的crtpt(),md5()还是MySQL的password(),总之,这能给我们的数据多一层安全屏障。
欢迎光临 站长论坛 (http://tzlink.com/bbs/)
Powered by Discuz! X3.2