在2018年5月23日,博客被黑过!
打从那时起,对wordpress安全,耿耿为怀 > 步步为营 > 采取措施 > 防卫于未然
开始与黑客攻击的攻防战役吧!
第一防线:服务器端
1.参考这篇文章的“安全设置”
2.安装最新且稳定的PHP版本,如:PHP 7.2.0
;
3.设置WordPress文件目录权限,如:755
;
4.设置HTTPS – SSL Certificate
;
5.注册使用Cloudflare
来防盗链、CDN、SSL、预防DDoS;反正免费版好用的功能都开启吧,没事多多浏览下Cloudflare控制面板,熟悉后就不是事儿了。
第二防线:安装WordPress时
1.使用复杂的用户名与密码,比如用户名为邮箱地址,密码为类似:Kt83QPHefnGK;
2.使用自定义的数据库前缀如比如sgq_,只要不是默认的wp_就可以;
3.手动保持WordPress更新,为什么不设置自动更新?看清楚更新版本是修复什么,先备份好,再升级,避免wordpress出错;
4.只安装有知名度、质量的主题和插件
5.必装插件列表:
- 安全插件,比如
Wordfence
或者All In One WP Security - 备份插件,比如
UpdraftPlus
:开启定期备份到网盘 - 缓存插件,比如
WP Rocket
:加速网站
6.可选插件列表:
- Disable Google Fonts(国内博客使用)
- Enlighter——可自定义的语法高亮显示插件(喜欢linux的话)
- WP Mail SMTP
- Yoast SEO
- Two Factor Authentication
第三防线:设置WordPress时
.htaccess
能用几行代码就达到目的,就不必安装插件了
1.Disable Directory Indexing and Browsing(禁止浏览目录)
#protect directory browse
Options -Indexes
2.Protect wp-config.php(保护WP配置文件)
#protect wp-config.php
order allow,deny
deny from all;
wp-config.php
1.修改wp-config.php文件权限为440或者400
2.关闭后台的theme editor
功能
#Disallow file edit
define( 'DISALLOW_FILE_EDIT', true );
functions.php
1.修改后台登录网址
- 更改登陆URL为:https://shenguanqun.com/wp-login.php?11=22&33=44
- 记得把示例参数:11,22,33,44和https://shenguanqun.com/wp-content/uploads/图片.jpg,改为你自己的参数!
/**
* wordpress: change login URL
*/
add_action('login_enqueue_scripts','login_protection');
function login_protection(){
if(($_GET['11'] != '22') || ($_GET['33'] != '44'))header('Location: https://shenguanqun.com/wp-content/uploads/图片.jpg');
}
:wq
保存后,后台的登陆网址只能是上面的格式了;不然的话比如访问/wp-admin或者/wp-login的话,浏览器就只会显示你在代码中设置的那张图片:https://shenguanqun.com/wp-content/uploads/图片.jpg
比如我现在设置的就是这张:
2.隐藏wordpress版本号:
/**
* wordpress: hide version number
*/
function wp_version_remove_version() {
return '';
}
add_filter('the_generator', 'wp_version_remove_version');
nginx.php
如果你用的是lnmp(linux、nginx、mysql、php)
那么可以通过nginx来做很多事情;修改对应的虚拟主机配置文件即可,一般在路径/usr/local/nginx/conf/vhost/shenguanqun.com.conf
1.Disable XML-RPC
避免被恶意攻击(大量访问)xmlrpc.php;
攻击原理:wordpress网站xmlrpc.php文件是一个远程端口文件,攻击者通过POST提交恶意大量的提交,不断的访问xmlrpc.php文件,形成DDOS攻击,致使网站服务器CPU过高停机,网站无法打开。
解决方法:关闭掉自己网站xmlrpc.php文件。
#方法1:添加代码到上边子主题的functions.php文件中
add_filter('xmlrpc_enabled', '__return_false');
#再添加下边代码,通过.htaccess屏蔽xmlrpc.php文件的访问
#Block WordPress xmlrpc.php requests
Order Deny,Allow
Deny from all
#方法2:利用nginx控制
location ~* ^/xmlrpc.php$ {
return 403;
}
2.Prevent Hotlinking(防盗链)
location ~ .(gif|png|jpe?g)$ {
valid_referers none blocked ~.google. ~.bing. ~.yahoo yourdomain.com *.yourdomain.com;
if ($invalid_referer) {
return 403;
}
}
3.阻止上传文件夹内的任何php文件执行
location /wp-content/uploads/ {
location ~ .*.(php)?$ {
deny all;
}
}
直接插件配置
嫌麻烦的话,直接安装All In One WP Security
插件设置就行,功能如下:
后话
防线配置得差不多了,就可以开始去充实网站内容吧~
定期备份!
定期备份!
定期备份!