前言

在2018年5月23日,博客被黑过!
Supernatural-Dean.gif

打从那时起,对wordpress安全,耿耿为怀 > 步步为营 > 采取措施 > 防卫于未然
push.gif

开始与黑客攻击的攻防战役吧!

第一防线:服务器端

1.参考前面这篇文章的:

2.安装最新且稳定的PHP版本,如:PHP 7.4.21

3.设置WordPress文件目录权限,如:755

4.设置 HTTPS – SSL Certificate

5.注册使用 Cloudflare来防盗链、CDN、SSL、预防DDoS等等。

第二防线:安装WordPress时

1.使用复杂的用户名与密码,比如用户名为邮箱地址,密码为类似:Kt83QPHefnGK;

2.使用自定义的数据库前缀如比如 sgq_,只要不是默认的 wp_就可以;

3.手动保持WordPress更新,为什么不设置自动更新?看清楚更新版本是修复什么,先备份好,再升级,避免wordpress出错;

4.只安装有知名度、质量的主题和插件;

5.必装插件列表:

  • 安全插件,比如Wordfence
  • 备份插件,比如UpdraftPlus:开启定期备份到网盘;
  • 缓存插件,比如WP Rocket:加速网站。

6.可选插件列表:

  • Disable Google Fonts(国内博客使用);
  • Enlighter——可自定义的语法高亮显示插件(喜欢linux的话);
  • WP Mail SMTP
  • Yoast SEO
  • Two Factor Authentication

第三防线:设置WordPress时

.htaccess

说明:以下示例都是增加代码到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

说明:以下示例都是增加代码到wordpress根目录下的 wp-config.php

1.修改 wp-config.php文件权限为440或者400

2.关闭后台的 theme editor功能

#Disallow file edit
define( 'DISALLOW_FILE_EDIT', true );

functions.php

说明:以下示例都是增加代码到WP主题目录下的(有启用子主题的话就在子主题下)的 functions.php

1.修改后台登录网址

/**
 * 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

比如我现在设置的就是这张:
youreanidiot.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/以域名命名.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插件设置就行,功能如下:

All In One WP Security.png

后话

防线配置得差不多了,就可以开始去充实网站内容了~

定期备份!

定期备份!

定期备份!

Last modification:January 9th, 2021 at 08:24 am
如果觉得我的文章对你有用,请随意赞赏