基于apache的WordPress安全设置
1.移动 wp-config.php 文件的存放位置
wp-config.php 文件默认是在网站根目录保存的,把这个文件移动到别的位置就可以解决到这个隐患,WordPress 默认会在网站根目录寻找这个文件,如果没有找到,会继续往上层目录寻找。知道了这点,我们就可以把 wp-config.php 文件移动到 WordPress 站点根目录的上层目录,就算别人知道了你的 FTP 密码,在网站里也找不到数据库配置信息。
安全起见,建议在 WordPress 根目录创建一个 wp-config 配置文件,然后把真实的 wp-config.php 文件的位置包含进来,如下:
<?php define('ABSPATH', dirname(__FILE__) . '/'); require_once(ABSPATH . '../path/to/wp-config.php');
2.禁用目录浏览
一些服务器设置允许目录浏览,即你可以通过http://yoursite.com/wp-plugins/这样的链接看到自己的插件内容。 要禁用目录浏览,只需要在.htaccess文件里加上下面的代码:
Options All -Indexes
3.禁止浏览.htaccess文件
更改自己本地的.htacess文件,添加如下代码:
<Files .htaccess> order allow,deny deny from all </Files>
注: order 的意思是规定allow和deny的次序
4.wordpress修改wp-admin隐藏后台管理登录地址
在主题的 functions.php 文件里加入 保护后台登陆的代码:
//保护后台登录
add_action('login_enqueue_scripts','login_protection');
function login_protection(){
// 获取首页地址
$url = home_url();
if($_GET['word'] != 'admin') {
header('Location:'.$url);
exit();
}
}
修改后您的默认后台登陆地址就变为:域名/wp-login.php?word=admin 输入wp-admin就会被重定向到普通登陆地址。
5.文件夹,文件权限设置建议
.htaccess 0444
wp-config.php 0444
注:Linux修改权限命令chmod 444 文件名
6.禁用PHP执行保护网站免受后门访问文件的侵害,我们需要创建一个.htaccess 文件并将其上传到网站的/wp-includes/和/wp-content/uploads/目录中
<Files *.php>
deny from all
</Files>
7.保护WordPress下的wp-config.php配置文件
<files wp-config.php> order allow,deny deny from all </files>
8.使用.htaccess设置网站图片防盗链
#disable hotlinking of images with forbidden or custom image option RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomian.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?baidu.com [NC] RewriteRule \.(jpg|jpeg|png|gif)$ – [NC,F,L]
如果请求源自yourdomian.com或baidu.com,此代码仅允许显示图像。不要忘记用您自己的域名替换yourdomian.com。
9.禁用通过xmlrpc.php来的请求
每个WordPress安装都附带一个名为xmlrpc.php的文件。
此文件允许第三方应用程序连接到您的WordPress网站。
大多数WordPress安全专家建议,如果您没有使用任何第三方应用程序,那么您应该禁用此功能。
# Block WordPress xmlrpc.php requests <Files xmlrpc.php> order deny,allow deny from all </Files>
10.阻止对网站中的作者进行扫描
# BEGIN block author scans RewriteEngine On RewriteBase / RewriteCond %{QUERY_STRING} (author=\d+) [NC] RewriteRule .* - [F] # END block author scans
11.禁止网站服务器通过未经授权的访问
<files ~ "^.*\.([Hh][Tt][Aa])"> order allow,deny deny from all satisfy all </files>
12.配置网站上传文件的大小限制
php_value upload_max_filesize 64M php_value post_max_size 64M php_value max_execution_time 300 php_value max_input_time 300