WordPress的安全被其开发团队非常重视。安全补丁和升级经常被发布,以帮助确保WordPress与日益具有挑战性的在线环境保持同步。作为这些努力的一部分,WordPress运行一个负责任的漏洞披露计划,所以这些问题不会被忽略。
除了WordPress开发团队的努力之外,个人用户也应该采取措施,尽量减少他们的安全风险--通常被称为 "加固WordPress"。有几项快速措施可以保证你的WordPress网站的安全,我们在最近的一篇文章中介绍了这些容易实施的步骤,即如何保持WordPress的安全:基础知识。
除了基本步骤之外,还有一些更先进的安全技术,可以用来进一步保护你的WordPress网站,以及管理WordPress网站时重要的安全注意事项。
让我们深入了解一下其中的一些情况。
SFTP - 连接到你的服务器
首先,关键是要确保当你连接到你的网络服务器时,你使用SFTP,这类似于FTP,只是你的密码和其他数据在你和你的服务器之间传输时是加密的。FileZilla是一个优秀的文件传输应用程序,支持几种文件传输协议,包括SFTP。你可以在这里了解如何使用FileZilla安装和传输文件到你的Linode。
防止蛮力攻击
当攻击者重复地、系统地提交不同的用户名和密码,试图获得对网站的访问时,就会发生暴力攻击。值得注意的是,暴力攻击并不是WordPress特有的。每个网络应用都很容易受到影响。
抵御这类攻击的第一道防线是确保你的密码是安全的。蛮力攻击的最终目的是为了进入你的网站。选择一个难以破解的密码 在我们之前关于保护WordPress的文章中已经 讨论过了,所以我们不会更详细地讨论它。我只想说,要确保你的密码是一个好的密码。在你的WordPress实例中启用两步认证也是非常值得的。
接下来,使用一个插件来限制你的网站的连续登录尝试次数。一个流行的插件是Limit Login Attempts Reloaded,它有超过100万的下载量。它限制了通过正常登录以及XMLRPC、WooCommerce和自定义登录页面可能的登录尝试次数。
另一个选择是改变wp-admin的登录位置。默认情况下,所有WordPress网站的登录页面都位于/wp-admin(例如:www.examplesite.com/wp-admin。)进行暴力攻击的机器人往往会立即瞄准这个页面。使用WPS隐藏登录来帮助。
一如既往,在安装新的和未经测试的插件之前,总是值得 对你的网站进行备份。虽然大多数流行的插件不会损害你的网站,但总是有不兼容的可能性。备份可以让你放心,一个错误的插件所造成的任何损害都可以迅速和容易地得到逆转。
WordPress管理的HTTP认证
你可以通过添加基本的HTTP认证来进一步锁定你的WP管理。这个过程将要求用户在到达WP登录页面之前输入一个用户名和密码,这可以帮助阻止蛮力机器人的行为。
要做到这一点,你需要创建一个.htpasswd文件。试着使用加拿大主机公司的一个伟大的免费资源来做这件事。你需要输入你想使用的用户名和密码,从下拉框中选择一种加密方法,然后点击 "生成密码"。一个长的文本字符串会被生成。将其复制并粘贴到一个新的文本文件中。把这个文件简单地保存为".htpasswd"。
接下来,登录你的服务器,进入你的WordPress wp-admin文件夹。打开这个文件夹,在wp-admin中创建一个名为 "htpasswd "的新文件夹。然后把我们先前创建的.htpasswd文件上传到这个文件夹。你必须只使用 "ASCII "模式传输你的文件,而不是 "二进制 "模式。
最后阶段是创建一个新文件,其中包含以下内容:
AuthName "Admins Only"
AuthUserFile /home/public_html/wp-admin/htpasswd/.htpasswd
AuthType basic
Require user yourusername
<Files admin-ajax.php>
Order allow,deny
Allow from all
Satisfy any
</Files>
你需要用你的.htpasswd文件的完整目录URL来更新AuthUserFile位置,以及用你用于.htpasswd文件的用户名来更新你的username。把这个文件保存为.htaccess,并把这个.htaccess文件上传到你服务器上的wp-admin文件夹,就这样了。下次你登录你的网站时,www.examplesite.com/wp-admin,你会被提示输入你的用户名和密码,然后才会出现WordPress管理员的登录界面。
有用的提示:如果你不知道你的.htpasswd文件的完整目录网址,那么一个方便的技巧是使用一个小的PHP脚本:
<?php
echo "Absolute path: ", getcwd();
?>
创建一个包含这个脚本的文件,称为testpath.php,并将其上传到htpasswd文件,然后访问这个网址(例如www.example.com/wp-admin/htpasswd/testpath.php),以获得你的.passwd文件的完整文件路径。
确保wp-includes的安全
在你的WordPress安装中,有一些特定的脚本是不打算被访问的。然而,它们确实为黑客进入你的网站提供了一个可能的途径。正因为如此,值得把它们锁起来。你可以用.htaccess文件中的mod_rewrite阻止对这些文件的访问。要做到这一点,在你的.htaccess文件(通常位于你的WordPress网站的文档根目录下)中,在# BEGIN WordPress和# END WordPress标签之外添加以下代码;否则,WordPress可能会覆盖它:
# Block the include-only files.
<IfModule mod_rewrite.c>
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]
</IfModule>
# BEGIN WordPress
禁用文件编辑
保护一个WordPress网站的很多方面都是围绕着让潜在的黑客更难生存。就像小偷会在没有警报器或安全灯的街道上寻找房子一样,黑客更喜欢瞄准一个缺乏基本安全功能的网站,而不是一个比喻为窗户和门都被牢牢锁上的网站。
默认情况下,WordPress允许管理员在仪表板内编辑PHP文件,如主题和插件。因为这个功能允许代码执行,所以它是黑客的一个明显目标。对于大多数网络开发者来说,对代码的修改是用Sublime这样的文本编辑器进行的,而不是从仪表盘内进行的。栓住这个特殊的WordPress窗口是有意义的,这样做可以为黑客消除另一个潜在的访问点。
要做到这一点,在wp-config.php文件中放置这行代码。这一行将删除所有用户的 "编辑主题"、"编辑插件 "和 "编辑文件 "功能:
define(‘DISALLOW_FILE_EDIT’, true);
虽然这不能阻止黑客向你的网站上传恶意文件,但它将有助于阻止一些攻击。
使用防火墙
防火墙是帮助防止攻击者进入你的WordPress网站的一个很好的方法。有几个选择:
防火墙插件
几个好的防火墙插件通过在WordPress处理之前在Apache 服务器层面上限制访问。一个好的例子是All In One WP Security & Firewall或 WordFence。这两个插件都会过滤传入的请求,以确保没有恶意的流量可以进入你的WordPress安装。
中间人防火墙
像WordFence这样的插件在服务器层面过滤流量。另一种方法是在流量到达你的服务器之前对其进行拦截,然后使用Cloudflare等产品将请求发送到你的服务器。这种方法很受欢迎,因为你只需要改变你的DNS记录,通过中介机构发送流量,而不需要改变你的服务器。
接下来的步骤
WordPress的安全仍然是一个热门话题。如果所有这些看起来都是艰苦的工作,那么考虑使用像Pressidium这样的管理型WordPress主机,它可以为你做很多繁重的工作。最后,定期对你的网站进行备份,这样你就可以在晚上睡个好觉,因为你知道你总是可以恢复你的网站。
评论 (2)
Excellent tips. Strong password and using limit login attempts are the quick fix for any WP blog. Being in the same industry I would like to add one more tip – use only trusted and highly rated themes and plugins.
A good password is great. Also, hiding or changing the wp-admin slug is really helps.