加强 WordPress 登录安全性的 5 个技巧
无论您的网站有多大,丢失您的网站数据或无法访问您自己的网站都可能是一种令人伤脑筋的体验。WordPress 为超过 25% 的网络提供支持,是黑客最有针对性的网站之一。
在我们之前的帖子中,我们向您展示了一些提示和技巧,它们几乎涵盖了保护您的 WordPress 网站的所有内容。尽管如此,总有改进的余地。在这篇文章中,我们将研究更多的技巧来帮助您使您的 WordPress 网站更难被攻破。
另请阅读:
10 个加强 WordPress 安全性的插件
1. Bcrypt密码散列
WordPress 于 2003 年启动,当时 PHP 和整个 Web 仍处于早期阶段。Facebook 还没有出现,PHP 甚至没有内置 OOP(面向对象编程)架构;因此,WordPress 继承了今天不再理想的遗产——包括它如何加密密码。
另请阅读:
Dropbox Hack 的教训:网络安全状况
直到今天,WordPress 仍然使用 MD5哈希。基本上,它的作用是将您的123456
密码变成类似e10adc3949ba59abbe56e057f20f883e
.
然而,由于现在的计算机比 10 年前更加复杂,因此现在几乎可以立即轻松地将此散列密码还原为原始形式。
PHP 从 5.5 开始就具有本机加密功能,如果您的 WordPress 在 PHP5.5 或更高版本中运行,则有一个名为wp-password-bcrypt 的方便插件可以让您在 PHP 中使用这个本机实用程序。
通过Composer或MU-Plugins安装并激活插件。重新保存密码,一切就绪。
2. 启用 WordPress.com 保护
暴力破解是一种常见的黑客攻击尝试,攻击者尝试通过猜测大量可能的密码(通常是字典中的单词)来登录您的网站。这就是为什么您应该设置一个难以猜测的密码的原因。
Automattic,WordPress.com 背后的人,已经获得了最受欢迎的 WordPress 插件之一,可以抵御暴力攻击。它称为BruteProtect,并与 Jetpack 集成。
根据我们的经验,它极大地帮助我们抵御了近百万次的暴力攻击。
要获得它,您需要安装 Jetpack 的最新版本并将您的网站连接到 WordPress.com。然后启用“保护”模块,并将您自己的 IP 地址也列入白名单。
现在你应该感觉更安全了。
3.隐藏您的登录网址
WordPress 以登录页面而闻名,wp-login.php
. 因此,黑客知道要对哪个确切页面进行暴力攻击。您可以通过伪装您的 WordPress 登录 URL来增加他们的难度。
幸运的是,有一些插件提供了这个实用程序:
4.禁用“忘记密码”
登录表单中的“忘记密码”实用程序是攻击者的一种入侵方式,他们通常会通过SQL 注入来获取您的登录凭据。如果只有少数人可以访问管理区域,最好将其关闭。
为此,创建一个新的文件上传 – 将其命名为forget-password.php
.
首先我们更改丢失密码的网址:
1个
2个
3个
4个
|
function lostpassword_url() { return site_url( 'wp-login.php' ); } add_filter( 'lostpassword_url' , 'lostpassword_url' ); |
删除链接。不幸的是,WordPress 没有提供一个合适的钩子来通过一个add_filter
函数巧妙地做到这一点。所以,我们用 JavaScript 来代替。
1个
2个
3个
4个
5个
6个
7
8个
9
10
11
12
13
14
15
16
|
function lostpassword_elem( $page ) { ?> <script type= "text/javascript" > ( function (){ var links = document.querySelectorAll( 'a' ); for ( var i = links.length - 1; i >= 0; i--) { if ( links[i].innerText === "Lost your password?" ) { links[i].parentNode.removeChild( links[i] ); } }; }()); </script> <?php } add_action( 'login_footer' , 'lostpassword_elem' ); |
最后,我们将“丢失密码”URL 重定向到登录屏幕。
1个
2个
3个
4个
5个
6个
7
8个
9
|
function lostpassword_redirect() { if ( isset( $_GET [ 'action' ] ) ){ if ( in_array( $_GET [ 'action' ], array ( 'lostpassword' , 'retrievepassword' ) ) ) { wp_redirect( '/wp-login.php' , 301 ); exit ; } } } add_action( 'init' , 'lostpassword_redirect' ); |
5.启用HTTPS
HTTPS 通过数据传输为您的站点提供额外的安全保护。它还可以提高您在 Google 搜索中的排名。现在,您可以通过共同倡议Let’s Encrypt免费获得有效的 HTTPS 证书。
对于 WordPress 网站,您可以使用WP Encrypt轻松获得Let’s Encrypt证书。因此,您今天没有理由不在您的网站中部署 HTTPS。
包起来
我只想提醒您,尽管进行了所有这些尝试,我们的网站仍可能受到攻击、黑客攻击,并可能通过我们无法理解的方式被黑客入侵。甚至像 Dropbox 和 LinkedIn 这样的大公司也成为安全威胁的牺牲品。
作为最后的手段,请记住尽可能定期备份您网站的文件和数据库。