WordPress安全设置

WordPress是内容管理系统(CMS)行业中众所周知的巨头,它是一个为互联网上所有网站的30%以上提供支持的平台。但是它的名气是有代价的。黑客经常将WordPress网站作为攻击目标,并破坏网站的内容。

WordPress核心是比较安全的,但是它的生态很强大,有数以万计的主题和插件,这就导致了它的安全问题变得严重起来。

但是,您也不必过分担心,通过一些必要的措施,是可以很大程度上提高你网站的安全。

选择优质的主机托管商

使WordPress站点免受恶意软件攻击的最佳方法是选择一个在服务器级别提供多层安全性的托管服务提供商。

廉价的托管主机总是非常吸引人的,尤其是在您刚刚开始使用时。但是,从长远来看,如果您对网站的建设很认真,就应该选择安全性较高的主机托管商。

好的主机不仅可以提供卓越的安全性,它还带有许多其他好处,例如内置CDN、自动备份、免费迁移以及免费的WordPress安装,可帮助您节省时间并从一开始就优化您的网站。这些类型的托管服务称为托管型主机。

网络上有很多托管型主机,做外贸网站的,建议使用 SiteGroundWPEngine

国内几乎没有什么针对WordPress优化的托管型主机,但是你可以优先考虑 阿里云腾讯云 这样的大厂的产品。

避免使用盗版主题和插件

高级主题和插件具有其他同类产品无法比拟的功能。开发人员发布了高级版本,以确保他们有足够的财力来将来继续开发更好的产品。

为了确保WordPress的安全性,这些插件和主题会不断更新并投放市场。为这些主题付费的个人会将其更新为最新版本。

开发人员确保质量,保障用户的网站安全。

然而,有些人免费寻求高级功能,去下载使用各种盗版破解的WordPress主题和插件。看起来是占了巨大的便宜,其实这是非常愚蠢的做法。

这种盗版主题和插件可能不是最新版,会存在安全漏洞,并且很多网上流传的盗版东西,都有植入恶意代码,你的网站随时都有可能被黑客拿下,甚至一夜之间就被删除!

安装使用安全插件

您可以通过定期检查网站,主题和插件的代码库来检查网站是否存在漏洞。大多数程序员还是会通过安装安全插件来采取简单而自动化的方法。

安全插件可帮助保护您的网站免受恶意软件攻击和各种形式的黑客攻击。它还可以使您的站点保持24/7全天候运行,并在发生问题时向您发送安全警报。

WordFence在安全插件方面处于行业领先地位,它提供了多种安全功能,例如恶意软件检测,阻止不可靠的登录名,防火墙,扫描仪,两因素身份验证等等。

除了WordFence之外,您还可以使用Sucuri Security来保护WordPress安装。该插件具有强大的功能,例如通过内置的缓存工具和CDN提高站点速度,防御DDoS攻击,利用和其他黑客攻击。

我们提到的这两个插件都带有其高级版本,这些高级版本可为您的WordPress网站带来额外的性能和安全性提升。也就是说,免费版本也非常有用的。

使用强密码和用户名

image-20220320090920462

强大的密码是保护网站安全的重要工具。通常被忽略,但仍有许多用户喜欢使用“ 123456,password和abc123”之类的密码。

如果您是这些用户之一,请立即更改密码。尽管很容易记住这些密码,但是即使安装了安全插件,黑客也很容易获得访问您的站点的权限,而不会遇到任何特殊问题。

要使用所有最佳做法设置强密码,您应该选择一个在线密码生成器。我们知道生成器将释放复杂且难以记住的密码。要解决该问题,您可以使用密码管理服务(例如LastpassPassbolt)。

不要只限于登录密码。为您的托管帐户、FTP和数据库创建强密码。

同样,不要仅仅依靠通用的登录用户名,例如“ Login”或“ admin”。尝试对用户名采取更加个性化的方法,以使黑客无法轻易发现它。此时,您不需要生成器。只需发挥您的想象力,然后找出一个容易记住的用户名即可。

例如,您可以使用喜欢的作者的用户名(例如Ernest Hemingway),并创建一个用户名,例如“ E-Hemmingway”或“ Ernest Hummingbird”。这只是一个有意思的例子。

禁用文件编辑选项

您可以通过访问仪表盘并通过 外观>主题编辑器插件>插件编辑器 来编辑WordPress主题和插件的代码。

一旦开发人员完成了一些自定义更改(如果有),就应该禁用文件编辑器功能。如果黑客访问您的网站,禁用文件编辑选项也将阻止他们在您的网站上植入恶意代码。

禁用文件编辑功能非常简单。转到您的wp-config.php并粘贴以下代码,如下所示;

define('DISALLOW_FILE_EDIT', true);

安装SSL证书

image-20220320091053793

SSL表示该站点是安全的,并且该站点的交易和付款处理也很安全。

如果您希望在搜索引擎结果页(SERP)中排名靠前,并确保用户的WordPress网站安全,那么您必须安装SSL证书。

SSL证书将 https:// 而不是普通的旧 http://添加到您的站点。它向搜索引擎表明网站是安全的,并且网站内的交易和其他活动也是安全的。结果,当您在网站上发布内容并在诸如Google之类的搜索引擎上对其进行排名时,它会优先于其他非安全网站。

互联网上有很多SSL证书提供程序,而且很多都是免费的 ,比如国内大厂 阿里云腾讯云 都有提供免费SSL证书。

将“wp-admin”后台网址更改为其他内容

默认的WordPress后台网址为:yoursite.com/wp-admin

如果您拥有强大的用户名和密码,那么您已经对黑客安全了。要进一步限制他们的访问,可以通过将网址wp-admin更改为其他内容来完全删除访问。只需要使用 Change wp-admin login 插件即可轻松实现。

更进一步,你还可以添加一个双因素身份验证方法,比如使用 双因素身份验证 插件即可。同时,您还将阻止安全性插件报告的登录失败次数最多的IP地址。

限制登录尝试

默认的WordPress登录名允许用户尽可能多地登录。它允许真实用户尝试登录几次,直到他/她可以访问为止。

但是对于黑客来说,它提供了足够的空间来尝试访问您的网站。如果有足够的空间,它们还可以触发DDoS攻击,这可能会在一定程度上损害您网站的声誉。

您可以通过Limit Login Attempts Reloaded插件来限制站点上的登录尝试,该插件允许您通过转到插件设置来设置登录尝试次数的限制。

隐藏wp-config.php和.htaccess文件

虽然这对于一般用户来说有点高级,但是从长远来看,将这些文件隐藏起来可以证明对提高站点的安全性很有帮助。

警告:在尝试此操作之前,我们建议您为WordPress安装创建备份。由于编码并不适合所有人,因此万一出现问题,它可能会严重影响您站点的流程。因此,在尝试此操作之前请保持警惕。

备份站点后,您所需要做的就是访问*.htaccess*文件并添加以下代码:


order allow,deny
deny from all

同样,您需要对.htaccess文件执行以下操作


order allow,deny
deny from all

即使该过程易于理解和实施,也必须进行备份,以防万一您破坏了网站。同样,编码是留给编码人员的。如果您有开发人员,则应该与他/她一起执行这些操作。

保持WordPress更新

image-20220320091422953

除了定期更新插件和主题外,您还应该同时保持WordPress核心的更新。

与插件和主题相似,WordPress核心开发人员还会在每个新版本中发布新的安全更新。使用较新的更新,可以防止黑客利用公认的漏洞来入侵您的网站。

WordPress会自动安装次要更新。但是,对于主要版本,您可以访问管理控制台以手动安装它们。

禁用XML-RPC

XML-RPC文件自3.5版开始提供默认的WordPress安装,如果您希望将站点与Web和移动应用程序连接起来,则至关重要。

尽管这些文件很有用,但黑客已设法利用此文件来放大您网站上的暴力攻击。

在您通过WordFence或其他安全插件安装了蛮力保护的情况下,该插件将阻止通过多个IP地址进行的多次登录尝试。如果黑客尝试入侵您的网站100次,则其IP地址将被阻止100次。

但是,XML-RPC改变了这种情况以支持它们。他们这样做是通过访问system.multicall函数来猜测20至50个请求的密码,而不会使其IP被插件禁止。

因此,为了确保免受蛮力攻击的安全,建议您禁用XML-RPC文件。请看文章:什么是XML-RPC,为什么以及如何禁用它?

注销闲置时间过长的用户

每当登录用户(可能是您或您的员工)长时间离开屏幕时,都会对您的网站造成安全风险。可能发生几种方式:

  • 您的WordPress会话可能被恶意软件劫持。
  • 有人可以更改您网站的密码,从而禁用您的访问权限。
  • 他们拥有您的帐户后,便可以对您的帐户进行恶意更改。

建议您删除网站上闲置时间过长的用户,以防止此类入侵您的网站。

您可以使用名为Inactive Logout的插件来实现。安装插件后,只需导航至“设置”>“非活动注销”即可设置插件的时间。然后,单击“ 保存更改”,就完成了。

在您的WordPress登录上启用安全问题

image-20220320091722455

如果仅创建强密码,用户名和更改wp-admin登录网址是不够的,则可以通过引入安全问题来进一步提高WordPress网站的安全性。

WordPress插件为您的安全增添了价值。使用WP Security Question插件,您可以将安全问题添加到您的站点。

定期执行安全检查

WordFence和相关的安全性插件会定期跟踪您的网站访问量,并向您发送任何奇怪情况的报告(如果确实存在)。

如果您发现网站访问量或SERP总体排名突然发生变化,建议您手动扫描您的网站以查找错误和可能的迹象,表明该网站已被黑客入侵。

有很多非WordPress解决方案可以帮助您检测网站上的问题。就是说,其中最有效的是Sucuri Site Health CheckVirustotal

进行这些扫描相对容易。您所要做的就是输入网站的网址,然后等待扫描完成。这两种扫描仪的搜索都非常彻底,并且会生成详细的报告,以显示您缺乏安全保护的地方以及与您的站点相关的重大问题是什么。

建议您定期执行这些扫描,以在出现问题时保护自己。

在特定的WordPress目录中禁用PHP执行

您可以用来确保后端安全性的另一种方法是禁用某些目录的PHP文件的执行。在某些目录中,例如/wp-content/uploads/,不需要执行php。

与您需要禁用XML-RPC和文件编辑的方式类似,您也可以执行此操作以防止黑客通过它们访问您的网站。

您可以通过打开记事本文档并将以下代码粘贴到该文档上来完成此操作:


deny from all 

将其另存为.htaccess并将其上传到上述目录/wp-content/uploads/。与上面提到的wp-config.php文件类似,最好在执行此操作之前先进行备份,因为更改可能会导致您的网站损坏。

安装 Google Captcha 插件,防止恶意登入

安装 Google Captcha 插件,让你在登录后台的时候,多一步「实人认证」的步骤,可以防止恶意程序尝试用僵尸帐号暴力登入。

隐藏WordPress版本

编辑你的header.php模板,将里面关于WordPress的版本信息都删除,这样黑客就无法通过查看源代码的防治得知你的WordPress有没有升级到最新版本。

默认情况下会在头部输出WordPress版本信息,你可以在主题的 functions.php 最后一个 > 前面添加:

//隐藏版本号
function wpbeginner_remove_version() {
return '';
}
add_filter('the_generator', 'wpbeginner_remove_version');

防止WordPress目录显示

WordPress会默认安装插件到/wp-content/plugins/目录下,通常情况下直接浏览这个目录会列出所有安装的插件名,这很糟糕,因为黑客可以利用已知插件的漏洞进行攻击,因此可以创建一个空的index.html文件放到这个目录下,当然,修改Apache的.htaccess文件也可以起到相同的作用。

保护wp-admin文件夹

你可以通过限定IP地址访问WordPress管理员文件夹来进行保护,所有其他IP地址访问都返回禁止访问的信息,不过你也只能从一两个地方进行博客管理。另外,你需要放一个新的.htaccess文件到wp-admin目录下,防止根目录下的.htaccess文件被替换。

针对搜索引擎的保护

很多WordPress系统文件不需要被搜索引擎索引,因此,修改你的robots.txt文件,增加一行Disallow: /wp-*

WordPress数据库安全

数据表最好不要使用默认的wp_开头,安装数据库备份插件,无论做了多少保护,你还是应该定期备份你的数据库,使用WordPress Database Backup等插件可以实现数据库的定期备份。

安装Wordpress Security Scan插件

这个插件会自动按照以上的安全建议对你的WordPress进行扫描,查找存在的问题,使用较为简单。

安装安全插件

WordPress Firewall 2 :该插件可以帮助你识别/阻止一些有效的攻击,例如 目录扫描、SQL注入、WP文件扫描、PHP EXE扫描 等,并可将其定向到404或者首页。如果有问题还可以通过电子邮件通知你处理,还可以阻止一些IP的访问。

Better WP Security :由于大多数的WP网站存在插件漏洞、弱口令、过时的插件/程序,隐藏这些漏洞可以更好的保护网站,例如保护登录和管理区(控制面板?仪表盘?)。

Login Lockdown :这个插件可以记录失败的登录尝试的IP地址和时间,若是来自某一个IP地址的这种失败登录超过一定条件,那么系统将禁止这一IP地址继续尝试登录。

Limit Login Attempts :Limit Login Attempts 限制登录尝试的次数来防止暴力破解,增强 WordPress 的安全系数。

WP Security Scan :该插件会自动按照以上的安全建议对WordPress进行安全扫描,查找存在的问题。

文件权限设置

文件权限设置说明参考:https://www.centos.bz/2011/12/setup-secure-website-permissions/
wordpress文件权限设置涉及到几个目录:
根目录 /,/wp-admin/,/wp-includes/ :
所有的文件应该设置为只有自己的用户帐号有写入权限,其它的只设置有读权限。
/wp-content/:
用户目录,可以设置为所有用户可写。
/wp-content/themes/:
主题目录,如果你需要在后台使用主题编辑器,需要设置为可写。
/wp-content/plugins/ :
插件目录,设置只有你的用户帐号可写。
提示:wordpress全站目录不需要可写都可以正常运行,所以建议设置为全站不可写,当需要自动升级,安装主题或插件时,可以临时设置为可写,之后再关闭写入权限即可,这是最安全的设置。

数据库安全

如果服务器运行有多个网站,并且用到mysql数据库,建议为各个数据库指定一个低权限的用户。数据库用户需要的权限有:Alter,Delete,Create,Drop,Execute,Select,Update。
具体添加mysql数据库的命令为:
不需要远程连接:

grant Alter,Delete,Create,Drop,Execute,Select,Update on dbname . * to ‘username′@’localhost’ identified by ‘password’;

需要远程连接:

grant Alter,Delete,Create,Drop,Execute,Select,Update on dbname . * to ‘username′@’client-ip’ identified by ‘password’;

后台wp-admin安全设置

后台wp-admin安全的设置有人建议修改后台的地址,这虽然可行,但比较麻烦,而且升级wordpress会遇到困难。所以我们一般不建议修改后台地址。这里使用三步实现wp-admin后台的安全设置。
1、后台设置服务器端密码认证。
当访问wp-admin后台时,需要输入用户和密码才行进入后台,这阻止了黑客暴力破解wordpress后台密码的可能。
nginx设置方法如下:https://www.centos.bz/2011/12/nginx-http-auth-basic/

apache设置方法如下:https://www.centos.bz/2012/04/apache-password-access/
2、强制使用ssl登录后台。
如果你的网络不安全,使用http明文登录后台的话,有可能被黑客监听到用户和密码。如果使用https传送密码,则可以避免这种潜在安全隐患。
设置方法:https://www.centos.bz/2012/04/force-wordpress-admin-with-ssl/
3、只允许指定ip登录后台
这应该是非常好的安全设置。如果有可能,即你的工作地址相对固定,可以设置只允许指定的ip或ip段登录后台,这将极大地增强后台的安全性。
nginx设置方法:https://www.centos.bz/2011/12/nginx-deny-or-allow-ip/

apache设置方法:https://www.centos.bz/2012/04/apache-order-deny-allow/

wp-include wp-config.php

对于wp-include目录的保护,我们可以使用apache的mod_rewrite或nginx的location禁止任何用户访问wp-include的文件。
apache设置方法:

  1. # Block the include-only files.
  2. RewriteEngine On
  3. RewriteBase /
  4. RewriteRule ^wp-config.php – [F,L]
  5. RewriteRule ^wp-admin/includes/ – [F,L]
  6. RewriteRule !^wp-includes/ – [S=3]
  7. RewriteRule ^wp-includes/[^/]+.php$ – [F,L]
  8. RewriteRule ^wp-includes/js/tinymce/langs/.+.php – [F,L]
  9. RewriteRule ^wp-includes/theme-compat/ – [F,L]

总结

WordPress安全是必不可少的,您需要积极主动地为您的网站创建几乎牢不可破的墙。完成此操作后,最好保持警惕并花点时间检查网站的安全性。

否则,可能会以SERP黑名单的形式损害您的数字声誉,或者更糟的是,黑客本身提出了赎金要求。

祝您好运,使WordPress网站免受黑客攻击。保持安全,并保持警惕。