最近越来越多的站长关注 WordPress 网站的安全了,正好小编也最近也没什么教程好更新的,就写点有关于 WordPress 网站安全防护的教程吧。今天小编教大家使用.htaccess 文件保护 WordPress 站点不被恶意访客骚扰。

首先是垃圾评论,一直以来 WordPress 垃圾评论就是各大 WordPress 站长头疼的问题,很多垃圾评论都是软件直接利用 wp-comments-post.php 文件来直接提交的,那么我们可以利用.htaccess 文件来屏蔽 wp-comments-post.php 被直接访问,代码如下:(2013.10.31 更新:下面有位网友提问说用了小编的.htaccess 防垃圾评论代码出现访问错误,这里小编提示下代码中的 yourdomainname.com 要替换成自己的域名。)

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post.php*
RewriteCond %{HTTP_REFERER} !.*yourdomainname.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]
</IfModule>

接下来是防 sql 注入等恶意请求:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]

之前小编曾说过 WordPress 有个爆路径的漏洞, 参考这篇文章:《 WordPress 防黑教程之预防全版本通杀爆绝对路径漏洞》,其实我们可以利用.htaccess 来禁止某系目录下的 php 文件被直接访问,以/wp-content/themes/目录为例:

<Directory "/example/htdocs/wp-content/themes/">
       <Files *php>
           Order allow,deny
           Deny from all
       </Files>
   </Directory>

接下来是保护上传文件夹的安全,我们可以用.htaccess 文件来禁止在 WordPress 默认文件上传目录中运行 php 文件,代码如下:

<Directory "/example/htdocs/wp-content/uploads/">
        php_admin_flag engine off
    </Directory>

以上部分代码可以根据个人网站情况做适当修改。