WordPress因其易用性和易用性而闻名,但是它的受欢迎程度也使其成为不良参与者的诱人目标。本WordPress安全指南介绍了如何保护访问者,缓解威胁以及创建更安全的WordPress网站。
最新统计数据显示,网络上超过28%的网站管理员使用WordPress。它的流行是有代价的。通常是恶意黑客和垃圾邮件发送者的攻击目标,他们试图利用不安全的网站来发挥自己的优势。
WordPress安全是关于降低风险,而不是消除风险。由于始终存在风险,因此保护您的WordPress网站将保持一个连续的过程,需要经常评估这些攻击媒介。
保护您的网站
WordPress是否安全的问题完全取决于您,网站所有者。网站安全与降低风险有关。请遵循我们的WordPress安全最佳实践来强化和保护您的网站免受威胁。
本指南旨在就基本的安全技术和可行的步骤对WordPress管理员进行教育,这些方法和方法将有助于保护WordPress网站并降低遭受威胁的风险。
在本指南中
WordPress安全团队努力工作,以提供重要的安全更新和漏洞补丁。但是,使用第三方插件和主题会使用户面临其他安全威胁。
通过定期安装最新版本的核心WordPress文件和扩展名,可以确保您的网站拥有所有流行的安全补丁程序,并且WordPress站点更加安全。
插件和主题可能会变得过时,过时或包含对WordPress网站造成严重安全风险的错误。
为了保护WordPress的安装并提高安全性,我们建议您定期审核插件和主题。
评估您的插件安全性
您可以通过查看以下两个重要指标来评估WordPress插件和主题的安全性:
仔细阅读服务条款-其中可能包括作者没有在其首页上刊登广告的多余内容。如果插件或主题不满足任何这些要求,或者在最近更新之前最近更改了所有者,则您可能希望为WordPress网站寻找更安全的解决方案。
有时,恶意行为者会购买插件来添加恶意或有害功能。在安装最新更新之前拥有最近更改所有者的插件时,请务必谨慎。
删除未使用的WordPress插件和主题
对于未使用的插件,少即是多。在WordPress安装中存储不需要的插件会增加遭到破坏的机会,即使这些插件已被禁用并且在安装中未得到积极使用。删除未使用的插件和主题有助于提高安全性并保护WordPress免受黑客攻击。
不使用该WordPress插件?从安装中删除它。
更新WordPress
当有新的WordPress更新可用时,您将在“信息中心>更新”菜单中收到通知。
您应该始终尽快应用更新,以确保WordPress网站的安全。经常登录到您的站点将确保您在发布更新时知道它们。如果由于某种原因无法更新站点,请考虑使用网站防火墙对问题进行虚拟修补并最大程度地降低风险。
要在WordPress中设置自动更新,请执行以下操作:
某些更新可能会破坏您的网站,因此请确保在应用更新后确认您的网站可以正常运行。
高级用户可以参考WordPress Codex的有关使用subversion进行更新的指南。
要在WordPress中手动应用更新:
在将您的网站更新到最新版本的WordPress之前,我们建议您采取以下预防措施:
需要数据库更新
保持WordPress插件更新
如果已从第三方网站下载了该扩展名,则WordPress可能无法更新该扩展名。在这种情况下,您可能需要使用FTP手动更新插件或使用随附的更新程序来确保WordPress的安全。
要在WordPress中手动应用插件更新:
保持WordPress主题更新
保持主题更新是WordPress安全性的另一个重要方面。如果您没有使用子主题/父主题进行自定义,则需要将所做的修改复制到新的主题文件夹,然后将其更新为FTP。
要在WordPress中手动更新主题,请执行以下操作:
如果使用从父主题继承功能的自定义子主题,则更新主题非常简单。只需使用官方来源的最新版本覆盖父主题的副本即可。您的自定义设置在子主题中将保持不变。
攻击者经常利用薄弱的用户凭据来访问WordPress网站。锁定WP Admin访问权限可以防止黑客入侵并保护WordPress网站。
通过使用强大的独特密码来限制分配给角色的用户可用特权,启用两步或多因素身份验证并限制用户会话,从而提高WordPress网站的安全性,从而可以减少不良行为者侵害网站的风险。
删除默认的WP-Admin
绝大多数攻击都是通过使用常见的用户名和密码来针对wp-admin,wp-login.php和xmlrpc.php访问点的。
通过使用唯一的用户名并删除WordPress安装中的默认管理员帐户,可以使攻击者更加难以猜测(蛮力)进入您的网站。
如何替换默认的“管理员”帐户:
创建一个不同于您现有用户名的昵称,并将其设置为您的公开显示名称。这将使攻击者更难于暴力破解您的登录凭据。
用户角色和最小特权原则
在最小权限原则是由两个非常简单的步骤:
考虑到这一概念,WordPress包括了用于管理员,作者,编辑,贡献者和订阅者的内置角色。这些角色指定用户可以完成和不能完成的工作。
请遵循以下访问控制建议来保护WordPress:
WordPress密码安全性是加强您的网站并提高WP管理员安全性的重要因素。攻击者经常使用密码列表来暴力破解WordPress网站。这就是为什么您应该始终对所有帐户使用强而独特的密码来提高WP网站的安全性的原因。
强密码应符合以下标准:
使用密码生成器生成随机的字母和数字字符串是创建安全密码的最简单方法之一。
密码生成选项
使用两因素识别(2FA)/多因素识别(MFA)
两因素身份验证为您的WordPress帐户提供第二级安全性。此功能要求用户通过应用批准登录,并在有人能够猜出您的密码的情况下保护您的WordPress帐户。
如何使用Google Authenticator将2FA添加到WordPress:
Sucuri的网站安全平台包括一项功能,可帮助您轻松地在网站的任何页面上进行密码保护或实施2FA。
要使用Sucuri将2FA添加到您网站上的任何页面:
用Sucuri添加2FA
WordPress默认允许用户无限次数地尝试登录,但这会使您的站点容易受到暴力攻击,因为黑客试图尝试使用不同的密码组合。
您可以通过限制通过插件针对某个帐户的登录尝试次数或使用Web应用程序防火墙(WAF)来增加安全性。
一些为您提供此功能的流行插件包括:限制登录尝试,WP限制登录尝试和Loginizer。
首字母缩写词代表完全自动公共图灵测试,以告诉计算机和人类分开。此功能对于阻止自动机器人访问WordPress仪表板以及通过表单提交不需要的垃圾邮件非常有用。
在您的WordPress登录页面上添加验证码的流行插件包括Captcha和Really Simple Captcha。
登录前验证码
将对WordPress登录页面的访问限制为仅授权IP,可以防止未经授权的输入并更好地保护您的网站。
有可用的插件可以做到这一点。如果您使用的是基于云的WAF(例如Sucuri防火墙),则可以通过仪表板限制对这些URL的访问,而无需弄乱.htaccess文件。
允许列表IP地址
在信息安全(InfoSec)领域中,我们喜欢深入使用“防御”一词。
要欣赏这种意识形态,您必须遵循一个非常简单的原则:没有100%完整的解决方案能够保护任何环境。
在本节中,我们列出了许多可在WordPress网站上采用的解决方案,以提供有效的纵深防御策略。通过对这些防御性控件进行分层,您将能够识别和缓解针对您网站的攻击。
如果您访问官方的WordPress存储库并快速搜索安全性,则会发现超过4,298个具有不同分类和功能集的插件。如果您正在寻找较小的列表,请确保查看我们的最佳WordPress安全插件列表,以帮助确保您的网站安全。
我们将细分类别并说明其重要性,以便您找到适合您需要的解决方案。
WordPress安全插件–预防类别
这些插件旨在提供某种程度的防护,或者称为网站的外围防御。他们的目标是通过过滤传入流量来阻止黑客入侵。
预防插件通常仅限于在应用程序层工作,这意味着攻击必须击中WordPress应用程序才能做出响应。安全插件无法阻止针对服务器软件的攻击,这就是为什么我们建议考虑考虑基于云的WAF的原因。
WordPress安全插件–检测类别
保护对于已知问题很重要,但对未知问题却不是那么重要。能够检测到超出您的外围防御能力的任何东西都非常有价值,这就是检测发挥作用的地方。
这些插件将尝试通过文件完整性检查来识别入侵者,扫描是否有破坏迹象,或者将两种机制结合使用。
这些插件的有效性完全由安装顺序决定。例如,如果该插件基于完整性检查,则需要将其安装在一个新的,已知良好的环境中,以便它可以创建一个基准进行检查,以确保WordPress的安全。
某些插件可能会将已知的第三方主题和插件与其自己的存储库进行比较,以与已经受到威胁的网站一起使用,但这些网站与自定义文件或鲜为人知的文件不兼容。
检测插件对于识别您的网站是否出了问题很重要。这些工具可确保在发生安全事件时通知您。
WordPress安全插件–审核类别
与流行的看法相反,WordPress的安全性并非一成不变,而是忘记了它所承担的责任。您必须花时间在流程中,并了解正在发生的事情,正在登录的人,正在更改的内容以及进行更改的时间。
审核插件可以通过提供基本的管理功能来帮助您回答上述问题,这些功能可以帮助您识别,阻止或响应折衷方案。
WordPress安全插件–实用工具类别
这也许是整个WordPress安全插件生态系统中最多样化的存储桶。有些插件是我们认为是安全领域的瑞士军刀的插件。这些实用程序插件的功能集要少得多。
这些插件的安全性配置选项可能很详尽。它们具有您可能或曾经希望使用的所有可能的配置,并且最适合喜欢修改或希望能够配置特定选项以满足其需求的用户。例如,某些安全插件仅禁用XML-RPC或移动您的登录页面。
我们也为解决特定安全功能的工具集(例如备份或维护插件)保留此类别。
网站托管安全性近年来已经成熟,这是一个复杂的话题。
大多数主机在堆栈的各个级别提供您所需的安全性,但网站本身却不提供。有许多托管服务提供商提供额外的安全性,但是除非您从他们那里购买了安全产品,否则他们不太可能为您解决妥协。
WordPress安装可使用四种主要的托管环境:
从理论上讲,从用户消除最大依赖性的环境将提供最大的安全性。如果您有时间和技能来保护自己的环境,那么您将拥有更多选择,但也将承担更多责任。
但是,实际上,您选择的托管环境的类型应由您的需求和专业知识决定:
您也可以与托管服务提供商进行对话,以确定他们对安全性的立场。一些关键点应该解决:
在共享服务器环境上使用仔细隔离的FTP和用户帐户,以防止跨站点污染。
SFTP / SSH连接
在主机环境中,往返服务器的安全文件传输是网站安全的重要方面。加密可确保所有发送的数据都受到保护,以免被窥探您的网络流量的窥视。
我们建议使用以下方法之一连接到服务器并保持WordPress安全:
SSH:安全套接字外壳是一种安全的网络协议,是安全管理远程服务器的最常用方法。使用Secure Socket Shell,可以对所有类型的身份验证(包括密码身份验证和文件传输)进行完全加密。
SFTP: SSH文件传输协议是SSH的扩展,并允许通过安全通道进行身份验证。如果使用FileZilla或其他FTP客户端,则通常可以选择SFTP。大多数FTP服务中SFTP的默认端口为22。
为了提高安全性,维护WordPress网站的备份应该是管理员最重要的重复任务之一。
如果绝对其他所有地方都出问题了,那么好的备份集可以保存您的网站。如果恶意攻击者决定他们要清除其所有站点文件或使用其错误脚本破坏站点文件,则可以通过从备份中还原站点来消除损害。
成功使用备份解决方案有四个关键要求:
您可以使用多种工具来帮助确定网站何时出了问题。为了帮助您快速响应安全漏洞,请使用包含以下服务的工具。
完整性监控
完整性检查是审核WordPress安装的重要方面,可以为您提供入侵网站的预警。
文件完整性监视工具通常安装在服务器上,它们在其中创建关键文件和注册表项的基线加密校验和。如果文件或记录有任何修改,您将收到有关更改的通知。
您可以为WordPress安装免费的Sucuri Scanner插件,以使用我们的核心文件完整性监控系统。
审核/警报
审核工具使您可以查看网站上的用户活动。
作为您网站的管理员,您应该提出以下问题:
我们不能充分强调伐木活动的重要性。使用一种工具记录并警告您在您的网站上采取的任何操作,包括:
WordPress完整性监控警报
创建响应和恢复计划
响应和恢复不只是对入侵或事件做出响应,还涉及分析攻击的影响以了解发生了什么,并实施控制措施以防止再次发生。
我们会积极维护一个免费的WordPress安全插件,该插件包含上面列出的所有功能,以增强安全性并确定危害指标。
如果您认为自己的WordPress网站已被黑客入侵,请阅读我们的《如何清理WordPress黑客指南》,或与我们的恶意软件清除小组联系。我们的专业安全分析师可在24/7/365提供服务。
警告:以下建议适用于了解这些文件如何工作的服务器管理员。如果您对这些建议不满意,建议您使用包含虚拟加固的网站防火墙。
大多数供应商在说他们正在加固WordPress环境时,将修改.htaccess文件。
此关键配置文件特定于在Apache上运行的Web服务器。如果您正在使用Apache在LAMP堆栈上运行WordPress实例,那么我们建议通过使用以下规则更新.htaccess文件来强化您的网站。
以下某些规则取决于您所运行的Apache版本。在这些情况下,我们包含了针对Apache Server 2.2和2.4版本的说明。
/。成功
规则说明
重写规则:
如果该规则具有对服务器的写访问权,则该规则由WordPress生成,最值得注意的是用于修复永久链接的问题。
如果它不在文件的顶部,请放在.htaccess文件的顶部。其他任何规则应在#BEGIN WordPress和#END WordPress语句之后。
将登录限制为IP范围
该规则将对wp-login.php的访问限制为一个IP,从而保护您免受其他位置的未经授权的登录尝试。即使您没有静态IP,也可以将登录名限制在ISP公共范围内。
在您要限制的其他经过身份验证的URL(包括/ wp-admin)上使用相同的条目。如果您使用的是动态IP,则可以参考我们的说明:如何使用动态IP锁定WordPress管理面板
保护wp-config.php
该规则限制访问者访问您的wp-config.php文件,该文件包含有关数据库的敏感信息,包括名称,主机,用户名和密码。该文件还用于定义高级设置,安全密钥和开发人员选项。
防止目录浏览
此规则可防止攻击者查看您网站的文件夹内容,从而限制他们利用您的网站所必须的信息。
防止图像热链接
此规则可防止其他网站使用您网站上托管的图像。虽然热链接不会使您的站点被黑客入侵,但它可能导致对服务器资源的破坏性利用。将example.com更改为您的网站。
保护.htaccess
此规则可防止攻击者访问以“ hta”开头的任何文件-这可确保.htaccess文件在服务器的所有目录中均受到保护。
阻止包括
该规则阻止黑客将恶意文件插入用于包括的四个主要文件夹中的任何一个:
如果您运行WordPress的多站点实例,则这些指令可能会引起问题。始终测试并谨慎使用。
/WP-INCLUDES/.HTACCESS
/WP-CONTENT/UPLOADS/.HTACCESS
规则说明
防止PHP后门
此规则可防止黑客将PHP后门放置在/ wp-includes /和/ wp-content / uploads /文件夹中,这是恶意文件上传的两个常见位置。
将WP-Config移动到根文件夹之外
wp-config.php文件是一个非常重要的配置文件,其中包含有关WordPress网站的敏感信息,包括数据库连接。
如果根目录中不存在wp-config.php文件,WordPress将在根目录上方的文件夹中自动查找该文件。将此文件移出根文件夹会阻止从Internet访问wp-config.php。
设置盐和键
wp-config文件包括专用于身份验证盐和密钥的部分。这些盐和密钥可提高在浏览器和Web服务器之间传输的cookie和密码的安全性。
您可以通过在wp-config.php文件中的其他define语句之后包含或编辑这些行来设置密钥:
define(’AUTH_KEY’,’在这里加盐’);
define(’SECURE_AUTH_KEY’,’在这里加盐’);
define(’LOGGED_IN_KEY’,’在这里加盐’);
define(’NONCE_KEY’,’在这里加盐’);
您可以导航到wordpress.org盐生成器,或使用我们的WordPress插件中的reset salt + keys选项,轻松生成盐。
如果您怀疑密钥已被泄露,请尽快重新生成它们。所有用户将需要重新认证。
禁用文件编辑
默认情况下,可以通过WordPress仪表板的“外观”>“编辑器”进行文件更改。
您可以通过从仪表板禁用文件编辑来提高WordPress的安全性。这样可以防止攻击者通过后端或wp-admin更改文件。您仍然可以通过SFTP / SSH进行更改。
要从仪表板禁用文件编辑,请在wp-config.php文件末尾包含以下两行代码:
##在资讯主页中停用编辑
define(’DISALLOW_FILE_EDIT’,true);
一些插件在其强化过程中或作为其他设置禁用文件编辑。
虚拟强化
虚拟强化是深度防御策略的一部分,该策略可以保护Web服务器和数据库免受漏洞利用。虚拟强化是向网站添加多层保护以减少攻击面的行为。
如果发布了安全补丁,但您无法更新站点,那么它就很容易成为黑客的目标。减轻这种风险的一种有效方法是在您的网站上使用虚拟补丁服务。
可以通过使用Web应用程序防火墙来完成虚拟补丁程序,其中将自动修补漏洞以防御已知的安全威胁。