使用 .htaccess 提高 WordPress 的安全性和可用性
2010年五月10th 作者:李谭伟 文章分类: 网摘 | 34 Comments
.htaccess 是一个特殊的文件,它能改变你服务器上的设置和允许你做很多不同的东东,如它能定制化 404 错误页面。.htaccess 其实并不难,我们可以把它认为它只是由一些简单命令或者用法说明组成的文本文件,不过它却能极大的提高站点的安全性。
1. 保护 .htaccess 自身的安全性
阻止用户通过读取和写入 .htaceess 来更改服务器安全性的设置。
<files .htaccess> order allow,deny deny from all </files>
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 的配置文件。这个指令假设 WordPress 是安装在根目录。
<files wp-config.php> order allow,deny deny from all </files>
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. 防止图片盗链
这个能够阻止其他网站盗链本网站的图片,迫使他们 要么指向整个页面,或者其他存储图像的地方。这个保存了宝贵的带宽并且能够增加流量(虽然只是一点点)。当有人试着直接链接到你的网站来显示图片,下面的代码将会得显示 stealingisbad.gif 这张图片。
#disable hotlinking of images
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain.com/.*$ [NC]
RewriteRule \.(gif|jpg|png)$ http://www.yourdomain.com/stealingisbad.gif [R,L]
9. 在你的站点给每个 URL 设置符合规定的或者“标准”的链接
这能够帮助提高网站的可用性和提高网站在搜索引擎中的排名。总之,它会把来自http://yourdomain.com 的请求重定向到 http://www.yourdomain.com/.
# set the canonical url
RewriteEngine On
RewriteCond %{HTTP_HOST} ^yourdomain\.com$ [NC]
RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [R=301,L]
10. 保护博客免受垃圾留言的侵扰
最后的那条指令将会阻止用户直接从其他网站的留言提交框发表留言,虽然这不是一个可以的防止所有垃圾垃圾留言的方法,但是它确实能够帮助你。
# protect from spam comments
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*yourdomain.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]
加入这些指令之后,你应该添加 WordPress 用于管理永久链接的代码。还有很多的指令和很多的方法可以提高网站的可用性和安全性,不过这里所列出的应该占了日常所需的大部分了。当你上传该文件到服务 器上之后,你应该仔细测试直到所有的东西都工作正常。检查下是否受保护的文件还能不能被访问,你依旧允许访问的文件和文件夹能 否还能访问。
一篇很不错的文章,转载保存一下。
原文地址:http://fairyfish.net/2007/08/01/using-htaccess-to-secure-and-improve-wordpress/



2010 五月 11th, 04:59 (#)
学习了,看的时候以为是楼主写的。呵““不过,好文章也该转载。
[回复]
2010 五月 12th, 00:44 (#)
为什么我的服务器一直用不了.htaccess这文件呢?试了很多次,一直不起作用,我用的是rhel5,谢谢
[回复]
李谭伟 回复:
五月 13th, 2010 at 00:04
需要apache或者iis配置一下。网上搜索一下相关的文档。
[回复]
deebuu 回复:
五月 16th, 2010 at 04:30
谢谢您的回答,我会去试试的
[回复]
2010 五月 19th, 15:58 (#)
我来看看了
订阅啦
有空看看我的小博哦!
[回复]
2010 五月 23rd, 05:27 (#)
大哥,我也来顶一顶
[回复]
2010 五月 25th, 00:14 (#)
正在用WP,学习一下~主要想知道怎么保护管理员账户,忽忽
[回复]
2010 六月 3rd, 11:25 (#)
我学习了哦!
[回复]
2010 六月 9th, 10:44 (#)
我是来学习的!!!
[回复]
2010 六月 14th, 02:05 (#)
[回复]
2010 六月 18th, 10:02 (#)
非常不错的 文章 收藏了 刚刚用WP弄了博客 正好用上
[回复]
2010 六月 18th, 16:03 (#)
又学到新知识了。
[回复]
2010 六月 20th, 12:18 (#)
不错,刚好能用上
[回复]
2010 六月 21st, 17:28 (#)
技术性知识啊啊啊啊
[回复]
2010 六月 23rd, 22:48 (#)
可以用新浪围脖登陆啦~?
[回复]
2010 七月 1st, 00:38 (#)
我看了你博客的一些信息,觉得不像是名博啊。。。
牟长青说你是名博的。。
这篇文章不错,很好。。
[回复]
李谭伟 回复:
七月 1st, 2010 at 23:05
让你失望了,我的博客完全不是名博。
长青太抬举我了。
我的博客更新频率非常低,还时有转载的。
长青的博客是非常值得学习的。
[回复]
2010 七月 1st, 03:16 (#)
我的WordPress好久没打理了,工作的时候要好好运作一下 向各位大牛学习!
[回复]
2010 七月 1st, 19:14 (#)
.htaccess 一般伪静态用的比较多。
[回复]
减肥产品 回复:
七月 4th, 2010 at 20:47
感觉就是为WP准备的一样~
[回复]
2010 七月 8th, 15:56 (#)
学习了,(*^__^*)
[回复]
2010 八月 1st, 00:17 (#)
期待新的好东东
[回复]
2010 八月 11th, 20:11 (#)
好久没更新了。
[回复]
2010 八月 17th, 12:19 (#)
好强悍的.htaccess
[回复]
2010 八月 19th, 11:48 (#)
为什么现在才知道你的文章呢,我的已经给人攻击过了!
[回复]
2010 八月 25th, 11:17 (#)
这个文件还没有入门,在这学到不少。
[回复]
2010 八月 25th, 14:10 (#)
我看不懂啦!
[回复]
2010 八月 26th, 11:17 (#)
确实不错啊。。转载了~
[回复]
2010 八月 31st, 03:10 (#)
这篇文章很有用 我也收藏了
[回复]
2010 九月 1st, 01:44 (#)
dhnasofhoahf
[回复]
2010 九月 2nd, 16:35 (#)
很好
[回复]
2010 九月 2nd, 16:36 (#)
很有用
[回复]
2010 九月 2nd, 16:37 (#)
学习了
[回复]
2010 九月 6th, 20:49 (#)
为什么博客不更新了呢
[回复]