最近很久没有更新稳定版本的typecho更新到了0.9版本,微魔于是在VPS尝试安装了一下,因为不需要复杂的数据库功能,因此选择了SQLite作为默认的数据库。在安装的过程中,尽管typecho自行随机了复杂的.db文件名,但是由于单文件的数据库在网站目录下(/usr下),而且微魔采用的是apt-get方式安装的Apache,没有进行相关的安全配置,这样,访客可以通过浏览器直接访问到SQLite数据库(***.db),这对于站长来说是个莫大的安全威胁。因此本文将介绍简单的2步,防止SQLite数据库被下载。
一、禁止Apache列出无首页文件夹内容
大家可能都有过这样的经历,访问一些网站使,当网站文件夹内无index.php等首页时,会列出文件夹下的所有文件,这对于网站数据非常不安全
方法1,一些网友对微魔所列的方法2有意见,因为如果是虚拟主机用户,并不具备修改Apache文件的权限,因此,我们还是采用修改.htaccess的方法,在网站根目录下的.htaccess加入如下代码
Options All -Indexes
方法2,删除Apache虚拟机配置里下面字段中的Indexes
... Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all ...
重启/重载Apache,测试访问无index首页的网站目录,返回403 Forbidden,目的达到了,但是测试下载发现依然可以下载,因此我们还需要下一步
二、Apache伪静态禁止用户访问SQLite数据库
方法1(感谢网友小白),修改网站目录下的.htaccess文件,加入如下代码
RewriteRule (.*)\.db$ / [L,R=301]
方法2,下面我们就需要用到Apache所支持的伪静态.htaccess了,在sqlite数据库所在文件夹下创建.htaccess,并加入如下内容
<FilesMatch "\.db$">
Deny from all
</FilesMatch>
Sqlite可以修改文件格式,因此下面的.db可以换成你自己的实际的文件格式
重启/重载Apache,再测试进行下载发现会返回403 Forbidden了,就算大功告成了
本文仅在遇到问题后临时整理,欢迎大家提供更好的解决方式
感谢列表
本文内容柔和了许多国内匿名网友的知识源泉,欢迎原作者联系微魔增加转载链接。另外,本文初稿在完成后得到了一些热心网友的修正,这里值得一提的是,来自FedVPS(也就是Pzea,也就是…)的技术(也就是老板)的建议。微魔语言感谢的同时,顺便在本文免费提供小幅文字广告:
FedVPS – 一个曾经帮助微魔部落改进文章的VPS服务商~ – 无所不能的传送门