巧妙保护文本型数据安全
数码时尚
小型的数据存储中,文本型数据库(简单地说就是用文件存储数据)往往比其他关系型数据库更为有效、方便;现在比较流行的网络应用程序大多都是采用文本文件来存储数据(比如论坛、留言本等)。
文本型数据库虽然短小方便,但是安全性能比不上其他数据库:如果文件名泄漏,轻则内容被人窥视,重则可能危害到整个网站的安全(特别是存储着密码的文件)。所以文本型数据库数据安全是不容忽视的一个问题。以前大多数措施都是在密码保护上下手。
笔者在实际应用中发现一个更有效而且简单的办法:只要把文本数据库的文件名取为服务器端解释执行的类型,在内容中做点稍许变化即可。下面对现今比较流行的PHP、ASP中的操作做一点简单介绍:
一、PHP 环境中的处理方法
把含有文本型数据的文件名取为:“*.php”,文件内容的第一行:“<?”,其他行存储数据。这样,即使文件名泄露,他人也不能看到文本文件里的内容。因为访问“*.php”时,服务器首先把它当成PHP程序进行解析,自然得出程序错误。这是其中典型的一个错误结果:“Parse error: parse error in H:\www.dzren.com\ 1.php on line 2”,如果在php.ini文件中禁止显示错误,则更完美,用户得不到任何显示结果。
二、ASP环境中的处理方法
把含有文本型数据的文件名取为:“*.asp”,文件内容的第一行为“<%”,内容的最后一行为“%>”,其他行存储数据。同PHP原理一样,用户只能看到“服务器内部错误”的提示。
可以看出,这样的处理非常简单,安全性也很高,做出的“牺牲”最多也不过是增加文件内容几个字节而已。