提升WordPress网站安全性25个技巧

建站 Wander 3周前 (03-23) 143次浏览 已收录 0个评论
文章目录[隐藏]

WordPress作为最受建站者喜欢的CMS,虽然提供了强大的功能和更多的自主权,但是wordpress网站安全问题也不容忽视。

根据Sucuri的报告显示, WordPress是全球黑客入侵最严重的CMS平台。

当然也会有很多人觉得我一个小小的独立站,又不是大麦,别人干嘛黑我。

但是,实际情况是现在的黑客技术都基本已经全自动了,所以管你大站小站,先撸一遍再说。

因此这里推荐25个提升wordpress网站安全性小技巧,让你摆脱被黑的担忧。

1. 修改登录链接

WordPress是全球黑客入侵最严重的CMS平台,我想其中最主要的原因之一就是wordpress使用默认登陆网站domain.com/wp-admin。

所以,要拜托wordpress网站被黑的问题,最有效的措施之一是更改默认登陆链接。

可以使用提供更改设定的服务器供应商,也可以使用一些安全插件来实现这一功能。

2. 限制登陆次数

很多黑客的入侵方式是暴力尝试,通过软件不断输入登录名和密码,直到匹配到正确的组合为止。

防止这种入侵方式的方法之一,便是限制登陆尝试的次数。

例如,如果连续尝试三次输入登录名和密码都错误,就阻止登录行文。

3. 不使用admin作为登录名,使用更复杂的登录密码

除了默认登陆链接,许多用户建站的时候可能使用的是第三方提供的文件或者整合包。

然后使用了默认的登录名和密码,这也使得网站风险大大提高。

所以,应该在第一时间修改用户登录名,并且更换为更为复杂的密码。

4. 开启双重验证

双重验证可以有效的防止暴力攻击和未经授权的访问。

其形式包含一次性密码、生物特征认证、移动推送通知、备份代码和秘密钥匙等。

要在 WordPress 中启用 2FA,您需要两个关键组件:

  • 安全/2FA WordPress 插件。在本文中,我们将使用Wordfence,这是一个以其强大的 2FA 功能而闻名的综合安全插件。
  • 身份验证应用程序。要完成设置,您需要在另一台设备(例如智能手机或平板电脑)上安装双因素身份验证应用程序。这些应用程序会生成基于时间的一次性密码 (TOTP),用于登录您的 WordPress 网站。

借助 Wordfence 和 2FA 应用程序,您将有能力加强 WordPress 网站的防御。

5. 最小权限原则

最小权限原则,是指在对应用开放权限时,应该遵循的风险最低话的原则,主要包括3条:

  1. those that need it,只给需要的用户权限;
  2. when they need it,只有当对方提出需求时给与权限;
  3. only for the time they need it, 只在需要时赋予权限,临时权限使用完成后,直接停用。

6. 隐藏系统文件

在WordPress中隐藏系统文件,通常指的是通过修改文件和目录权限,使得文件在FTP客户端中不可见,但实际上仍然存在于服务器上。

这样做可以增加安全性,避免未授权访问。

出于安全考虑,建议隐藏wp-config.php和.htaccess两个系统文件。

要实现隐藏系统文件,可以通过编辑.htaccess文件来实现。

# 禁止列出wp-config.php文件所在目录
<Files wp-config.php>
Order Allow,Deny
Deny from all
</Files>

# 禁止列出.htaccess文件所在目录
<Files .htaccess>
Order Allow,Deny
Deny from all
</Files>

7. 使用WP安全钥匙

WordPress 安全密钥是一种加密工具,可通过使其更难解码来保护登录信息。

这些密钥就像真正的密钥一样,用于锁定和解锁密码等加密信息,确保您的WordPress 网站安全。

这些安全密钥由您的WordPress 站点自动生成并存储在您的 WordPress 配置文件 (wp-config.php) 中。

共有四个安全密钥:

  • AUTH_KEY
  • SECURE_AUTH_KEY
  • LOGGED_IN_KEY
  • NONCE_KEY

除了 WordPress 安全密钥外,您还可以找到以下 SALT。

  • AUTH_SALT
  • SECURE_AUTH_SALT
  • LOGGED_IN_SALT
  • NONCE_SALT

大多数情况下,WordPress 会在每个新的 WordPress 安装中自动生成和使用安全密钥 + SALT。

但是,如果你的wp-config.php文件中并未发现相关信息,那么需要使用wordpress安全密匙生成器生成密匙并添加到设置文件当中。

8. 禁用file editor功能

WordPress自带了一个内置的代码编辑器,用来编辑我们的主题和插件文件。

如果使用不当的话,就很容易变成安全风险口。

所以这个功能我们最好还是关闭。

关闭方法:

在wp-config.php文件中任何位置添加以下代码

define( ′DISALLOW_FILE_EDIT′,true );

9. 谨慎对待XML-RPC

XML-RPC是工作在Internet上的远程过程调用协议。

它有助于将我们的独立站与Web和移动应用程序连接起来,所以在WordPress 3.5以上版本中被默认启用。

由于其本身强大的特性,所以当受到黑客攻击时,它会将黑客的攻击力放大。

如果不使用XML-RPC的话,我们需要将它的默认启用改为禁用。

更改办法:

在网站public_html目录下的.htaccess文件添加以下代码就能禁用此功能。

# Block WordPress xmlrpc.php requests

<Files xmlrpc.php>

order deny,allow

deny from all

allow from 123.123.123.123

</Files>

10.选择优秀的服务器

好的服务器会通过持续监管、自动备份等手段来预防和抵御攻击。

一般一个好的服务商会有以下安全服务:

  • 持续监管网络中的各种可疑行为;
  • 频繁及时的查看和修补安全漏洞;
  • 自动备份数据;
  • 自动更新WordPress;
  • ……

所以,在建站的时候,选择一个优秀可靠的建站服务器,是保护我们网站安全的第一步。

11. 保持更新

99%的wordpress网站被攻击,都是因为更新不及时。

WordPress是一个开源软件,会定期维护和更新。基本上每个月都会有一次。

WordPress更新对网站的安全性和稳定性至关重要。

因为无论是WordPress开发团队还是第三方插件和主题的开发者,他们都会在新版本中修复bug和安全漏洞。

所以我们需要确保WordPress本身、插件和主题是最新的。

12. 定期备份网站

备份,是保护独立站安全的最强大后盾。

因为假如我们的网站遭受了攻击,备份文件可以使我们迅速恢复网站。

就相当于是我们的底牌了。

备份的插件有很多,这里给大家推荐两个常用的:

1. BackWPup(付费)

下载量超高,在网站后台有独立的应用程序,主打快速恢复网站。

下载地址:https://wordpress.org/plugins/backwpup/

2.UpdraftPlus(有免费版和付费版)

支持定期备份和按需备份功能。

可以进行完整备份,并将备份文件储存在云端或者可以直接下载到电脑上。

付费版还包括网站迁移、网站克隆、数据库检索、数据库替换、多站点支持以及其他功能。

下载地址:https://updraftplus.com/

13. 考虑使用安全插件

安全插件可以帮助我们抵御未授权的登录以及修改文件操作。

同时,安全插件还可以扫描WordPress可执行文件(如php文件),检查这些文件是否被黑客加入其它可疑代码。

当有人登录我们的网站时,安全插件还会记录下它们的登录时间以及IP地址等信息,以邮件的形式发给我们。

以下是推荐的一款常用的安全插件:

WordFence(有免费版和付费版)

WordPress使用最广泛的安全插件。

有防火墙、安全扫描、2FA、限速、登录防爆破等功能。

下载地址:https://www.wordfence.com/

14. 使用CDN功能防止入侵

提高wordpress网站安全性最安全的方式是防止任何攻击者接近控制后台。

许多CDN系统提供了复杂的防火墙功能,可以在网络级别识别和拦截恶意流量,并阻止它们达到您的网站。

Cloudflare 尤其擅长阻止“恶意流量”,甚至有专门为保护 WordPress 网站而开发的规则和扫描。

他们对安全的“零信任”方法,比我们的建议更激进,采用“最低权限”原则。

默认情况下,所有流量和请求都将被视为恶意流量,知道被发现证明它们并非恶意流量。

这种设定非常有效地防止常见的暴力攻击方式。

15. 隐藏 WordPress 版本号

这个设置是用来为我们没有及时更新而保险的。

因为有些版本的WordPress,存在已知的漏洞。

这就意味着,别人一看你用的版本,就知道该用什么方法攻击你。

所以隐藏版本号,就很有必要。

隐藏办法:

在主题的functions.php 文件中,添加代码“remove_action(‘wp_head’, ‘wp_generator’);” 即可。

16. 登录日志和监控

即使我们已经拥有最佳的保护措施,还是可能被黑。

这种情况下,最重要的是能够找出发生了什么,并采取措施防止再次发生。

将活动日志插件添加到您的 WordPress 网站中可以在遭受黑客攻击后诊断可能发生的事情,并帮助您监视日常活动。

17. 使用SSL协议

SSL是一种安全套接层协议,是Web浏览器与Web服务器之间安全交换信息的协议。

简单来说就是,SSL协议可以加密网站和用户浏览器之间的数据传输。

SSL协议具有三个特性,分别是:

① 保密:在握手协议中定义了会话密钥后,所有的消息都被加密;

② 鉴别:可选的客户端认证,和强制的服务器端认证;

③ 完整性:传送的消息包括消息完整性检查(使用MAC)。

这里给大家推荐一个非营利组织:Let’s Encrypt

它为网站所有者提供免费的SSL证书。

18. 禁用PHP文件的执行

PHP(Hypertext Preprocessor),超文本预处理器,是一种在服务器端执行的嵌入HTML文档的脚本语言。

默认情况下,WordPress中某些目录是可以写入的。

这样我们网站上的其他授权用户就可以轻松地将主题、插件、图片和视频上传到网站。

然而这个功能很可能会被他人滥用,比如黑客可以利用它上传后门访问文件或恶意软件到您的网站。

这些恶意文件通常被伪装成WordPress的核心文件。

它们大多是用PHP编写的,可以在后台运行,以盗取或者破坏我们的网站。

因此,我们需要在某些目录中禁止执行PHP文件。

禁用方法:

比如我们要禁用/wp-content/uploads/目录中的PHP文件执行。

首先需要打开记事本,然后贴入以下代码。

<Files *.php>

deny from all

</Files>

然后将这个记事本文件保存为.htaccess。

最后使用FTP将其上传到网站上的/wp-content/uploads/文件夹即可。

19. 更改数据库前缀

数据库一般是黑客最喜欢侵入的区域,因为这里储存着网站的所有信息。

所以需要我们重点防护。

而一般的数据库都会有默认的前缀,让我们或者黑客一眼看就知道这个是数据文件。

所以我们就要改掉数据库的前缀,这样就增加了隐蔽性。

相当于把数据库藏起来了。

默认情况下,WordPress数据库中所有表单的前缀都是wp_ 。

修改办法:

① 打开位于WordPress根目录下的wp-config.php文件。

输入代码 “$table_prefix = ‘wp_a123123_’;”

把表前缀从wp_改成像这样的wp_a123123_。

② 进入网站数据库,修改数据库表名,执行如下SQL。

RENAME table `wp_commentmeta` TO `wp_a123123_commentmeta`;

RENAME table `wp_comments` TO `wp_a123123_comments`;

RENAME table `wp_links` TO `wp_a123123_links`;

RENAME table `wp_options` TO `wp_a123123_options`;

RENAME table `wp_postmeta` TO `wp_a123123_postmeta`;

RENAME table `wp_posts` TO `wp_a123123_posts`;

RENAME table `wp_terms` TO `wp_a123123_terms`;

RENAME table `wp_termmeta` TO `wp_a123123_termmeta`;

RENAME table `wp_term_relationships` TO `wp_a123123_term_relationships`;

RENAME table `wp_term_taxonomy` TO `wp_a123123_term_taxonomy`;

RENAME table `wp_usermeta` TO `wp_a123123_usermeta`;

RENAME table `wp_users` TO `wp_a123123_users`;

③ 搜索options表中任何其他使用wp_作为前缀的字段,并替换成我们的新前缀。

SELECT * FROM `wp_a123123_options` WHERE `option_name` LIKE ‘%wp_%’;

④ 搜索usermeta表中任何其他使用wp_作为前缀的字段,并替换成我们的新前缀。

SELECT * FROM `wp_a123123_usermeta` WHERE `meta_key` LIKE ‘%wp_%’;

注意:修改之前一定要备份!!!

20. 禁止目录索引

如果你的虚拟主机没有开启禁止目录索引功能,请您务必加上此语法以保护没有index目录的目录,避免被恶意人士将网站内容全部下载。
Options -Indexes

21. 关闭后台主题编辑功能

WordPress后台的主题一旦权限开放就可以在后台直接编辑,如果没有开放则只可浏览。

主机若有安装suPHP默认就是可以编辑。如果你觉得这项功能用不到,建议您可以关闭它。

毕竟直接暴露在后台可以编辑是一件很危险的事情,除了可能因为黑客入侵乱改,也可能自己改错造成网站出错。

请将以下语法加入倒wp-config.php适当位置,就可以关闭修改的权限了。

define(‘DISALLOW_FILE_EDIT’, true);

22. 限制Wp-Login.Php登入IP

如果你网站没有开放注册,那你可以执行这项的方法,限制允许访问wp-login.php只有网站的管理者。

设定方法和前面的限制wp-admin存取IP方法类似,请将“12.34.56.78”改成你允许的IP或是网段。

Order deny,allow
Deny from All
Allow from 12.34.56.78

23. 限制存取Wp-Includes目录

“wp-includes”这个目录是系统的一些核心目录,还有”/wp-admin/wp-includes”和,”/wp-includes”。

在我们的网站页面上并没有哪个页面有URL会指向这些地方(通常这个目录里的文件只能被被管理者修改或者代码里调用的)。

用以下这段语法可以限制存取的权限,请将下面的代码加入到根目录的.htaccess文件中。

此为官方建议设定。
# Block the include-only files.
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ – [F,L]
RewriteRule !^wp-includes/ – [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ – [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php – [F,L]
RewriteRule ^wp-includes/theme-compat/ – [F,L]
# BEGIN WordPress

如果没有加入以上语法,会显示错误讯息;如果加了以上语法,会显示WordPress的默认404页面:

告诉你目录不存在,这样是一个比较安全的防护措施。

24. 限制Wp-Admin目录IP

管理wordpress网站通常只会有两到三个固定几个IP,为了保证网站的安全。

下面这个方法可以限制读取wp-admin目录的IP或者IP网段,非指定的IP(或者IP网段)就无法访问后台。

新建.htaccess文件,并将文件上传到“wp-admin”目录下。

这段语法的判断流程简言之就是先封锁有所IP,然后开放允许的IP。

所以将“allow from 12.34.56.78”的12.34.56.78改成你的IP。如果是一个网段,可以输入“ 12.34.56.”

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName “WordPress Admin Access Control”
AuthType Basic
order deny,allow
deny from all
allow from 12.34.56.78

25. 不安装来源不明的主题插件

WordPress中一些高级主题和插件需要付费才能使用,但是有些人为了省钱,去未知的第三方网站下载不明来源的安装包安装到自己的网站上使用。

这里WP主题站是非常不建议这种做法的,一是没有售后和升级,二是安全没有保障,如果因为一点小便宜让网站遭受攻击的话是得不偿失的。

结语

尽管WordPress是一个广泛使用的平台,但它也成为了黑客的目标。

因此,采取上述措施来提升Wordpress网站安全性显得非常重要。

另外,保持对最新的安全漏洞和威胁的关注,并遵循安全最佳实践,可以帮助你进一步加强网站的安全性。


本站文章均为原创,除非另有说明,否则本站内容依据CC BY-NC-SA 4.0许可证进行授权,转载请附上出处链接,谢谢。
喜欢 (0)
[]
分享 (0)
Wander
关于作者:
嗨,我是Wander,Wander酷学网的创始人。8年外贸经验,7年自学建站,专注SEO 3年。对我而言,学习是一种酷炫的生活态度,于是建立了Wander酷学网,记录并分享我的学习心得。愿与你一同在知识的海洋里探索、成长,共享学习的乐趣!
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址