.htaccess 是一个特殊的文件,它能改变服务器的设置,比如它可以定制 404 错误页面。
.htaccess 看起来很复杂,其实并不难,我们可以把它认为是由一些简单命令或者用法说明组成的文本文件,不过它却能极大的提高站点的安全性。
1. 保护 .htaccess 自身的安全性
阻止通过读取和写入 .htaceess 来更改服务器安全性的设置。
order allow,deny
deny from all
2. 隐藏服务器的数字签名
隐藏服务器的数字签名之后,入侵者将更难找到安全漏洞,因为他们不知道网站背后的服务器是什么。
ServerSignature Off
3. 限制上传文件的大小
这个能够帮助阻止 DoS 攻击(用户通过上传巨大的文件来冲垮服务器)并且能够节约带宽。
LimitRequestBody 10240000
# limit file uploads to 10mb
4. 停止 mod_security 过滤器
这个设置是可选的,并且要特别小心处理。这些指令告诉服务器不要使用 mod_security 过滤器,因为 mod_security 过滤器不允许用户发表含有这些单词 “curl”,“lynx” 或者 “wget” 等等单词的文章。这个看起来有点琐碎,但是这个让一些站点头痛,因为这些单词几乎那些站点每天都会用到。
SecFilterInheritance Off
5. 保护 wp-config.php 文件
我们可以通过 .htaccess 文件阻止入侵者读取和写入 WordPress 的配置文件。
order allow,deny
deny from all
6. 自定义错误文档
这条指令做的更多是网站的易用性而不是安全性。它们指定了一旦服务器错误,哪个页面将被显示,如页面找不到(代码 404) 禁止访问(代码 403)等等。
ErrorDocument 404 /notfound.php
ErrorDocument 403 /forbidden.php
ErrorDocument 500 /error.php
7. 禁止浏览目录
这条指令阻止浏览服务器上没有 index 文件(如 index.html,index.php 等等)的文件夹目录内容。
# disable directory browsing
Options All -Indexes
8. 防止图片盗链
这个能够阻止其他网站盗链图片,当有人试着直接链接到你的网站上图片,下面的代码将会使其显示 https://img.008i.cn/2020/08/1597833504-08f95fddadd6dc5.gif 这张图片。
#disable hotlinking of images
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^htt...