防止您的 WordPress 博客被黑客入侵的 22 条提示

已发表: 2011-02-22

如何避免您的 WordPress 网站被黑客入侵

无论您现在是否在您的网站或博客中使用安全措施,事实是……

明智的 Bloggers 认真对待网站安全,并尽其所能防止他们的 WordPress 博客被黑客入侵。

在线安全是一个非常现实的问题。

许多人忘记更新插件并且没有使用最新版本的 WordPress。 如果您没有采取措施防止您的博客被黑客入侵,那么不这样做可能意味着灾难。

如何防止您的 WordPress 网站被黑客入侵

丢失博客或网站的内容可能会破坏业务、声誉或只是您一直试图扩大规模的在线形象; 想象一下拥有一个包含数百个帖子、评论甚至附属链接的博客,却发现它在第二天就被摧毁了! 不是很好的感觉。 但是,有一些方法可以使您的网站安全性更强而不是更好。

您可以添加插件、更新博客的框架,基本上,有很多方法可以让您的博客或网站安全。 所以为了帮助你,我写了这篇简短但内容丰富的文章。 我希望它可以帮助你们中的一些人。

这篇文章当然是我自己整理的,也是我的天才博客朋友,运行 And Break 的 Julius! 查看他的博客,了解我的绝妙技巧。

如何防止您的 WordPress 网站被黑客入侵

备份您的博客

在对您的博客进行任何更改之前,请务必备份您的博客。 大多数免费插件的问题在于它们不会备份您的所有数据。 例如,如果您的 WordPress 博客被删除并且您从免费插件恢复备份,您仍然会丢失大量数据,例如图像,因为它们没有使用这些插件进行备份。 这就是为什么我会推荐使用 Backup Buddy 来备份您的完整 WordPress 博客并让您在以后轻松恢复它的原因。

如果您担心自己的博客是否会被黑客入侵,请务必查看 Backup Buddy。

使用强密码

对于管理员等高权限用户来说,强密码是必不可少的。 没有它们,您的博客将容易受到暴力攻击。 本质上,这些攻击是攻击者试图通过大量密码(用户组合)来猜测密码。 如果您使用安全密码,那么成功的蛮力攻击的机会就会变得非常低。

以下是有关安全密码应包括哪些内容的一些提示:

  • 至少使用 1-2 个数字 使用大小写字符
  • 使用特殊字符,例如 !@#...

您也不应该使用诸如您的出生日期或您的爱好之类的密码。 这种密码非常不安全,因为黑客很容易找到个人信息。

您必须采取的另一个重要步骤是拥有许多不同的密码。 很高兴只有一个密码并通过它访问所有内容,但想象一下如果有人知道这个密码会发生什么。 他基本上可以访问您的所有帐户。

出于这个原因,使用许多不同的密码。

跟上补丁和更新

这是保护您的博客的另一个重要步骤。 创建补丁和更新是为了修复安全漏洞并添加到软件的功能中。 没有理由不安装它们。

本质上,您还应该随时了解 WordPress 的变化和一般漏洞。 因此,我建议您遵循以下两个提要:

  • WordPress 开发
  • 博客安全网

第一个是 WordPress 开发提要,其中发布了 WordPress 的新版本和最新更新。 另一个是来自 BlogSecurity.net 的提要。 这些人经常发布 WordPress 插件或 WordPress 本身中存在的漏洞。

使用 SSH 而不是 FTP

一般来说,FTP 并不像人们想象的那么安全。 您的 FTP 凭据通常未加密且易于捕获。

一个非常安全的 FTP 替代方案是 SSH。 SSH 使用一种简单的算法来加密通过它发送的所有数据,包括文件。 阅读这个故事,您可能会改变使用 FTP 上传的想法!

使用支持的 WordPress 主题

大多数人认为 WordPress 主题本身不会构成安全风险,但有些人会。 主题可能会带来安全风险,因为并非每个 Web 开发人员都知道如何编写安全代码。

因此,最好坚持使用不时受支持和更新的主题。 受支持的 WordPress 主题通常需要一些钱,但安全总比抱歉好。 这些付费主题称为高级主题。 此类主题由 Woo Themes 或 Thesis 等网站提供。

专业模板的另一个优点是,当你遇到麻烦时,你有一个可以求助的地方。

下载后扫描插件是否有病毒

今天,您可以轻松下载插件并在几秒钟内将它们安装到您的博客上。 但是你必须小心你下载什么样的扩展。 插件可能包含恶意代码。 因此,在下载恶意软件后立即对其进行扫描是有意义的。

您尤其需要使用在 WordPress 插件目录以外的其他地方下载的插件来执行此操作。

对于此任务,最好使用防病毒软件。 较新的操作系统在下载文件后会自动检查病毒。 如果您使用旧操作系统,我建议您每周或在下载新文件后立即扫描您的下载目录。

更改数据库表前缀

为了使您的数据库更安全,您应该更改您的数据库表前缀。 默认前缀是wp_ ,它应该更改为不同的,更复杂且更难猜的5rt30k_

这就是 WP Security Scan 有用的地方,因为它会为您执行此操作。 无论如何,您都应该安装 WP Security 插件,因为它会在您的博客上显示潜在的安全风险。

限制对 Wp-Content 目录的访问

wp-content是一个重要的 Wordpress 目录。 用户应该只能访问此目录中的某些文件类型。 这些文件类型包括图片( .jpeg.gif.png )、Javascript( .js )、CSS( .css )和 XML( .xml )。

因此,禁止访问所有其他类型的数据是有意义的。 下面的代码将允许访问图片、Javascript、CSS 和 XML 文件,但不允许访问任何其他数据。 下面的代码应该放在wp-content文件夹中的.htaccess文件中。

订单拒绝,允许
拒绝一切
<文件~“.(xml|css|jpe?g|png|gif|js)$”>
允许所有人
</文件>

这就是你需要做的。

安全 wp-config.php

Wp-config.php是一个非常重要的文件,因为它包含对保护您的博客至关重要的所有访问信息和密钥。 我们可以通过将这些行添加到 WordPress 根目录( wp-config文件所在的位置)中的.htaccess文件来保护文件:

# 保护 wp-config.php
<文件 wp-config.php>
命令拒绝,允许
拒绝一切
</文件>

此代码拒绝所有人访问wp-config.php文件。

没有目录浏览

关于 WordPress 安全性的另一个重要变化是禁止人们浏览您网站的目录结构。 如果你想看看这是什么样子,只需在 Google 中输入“index of” ,Google 就会列出所有允许浏览目录的网站。

为了阻止这种行为,您所要做的就是将下面的代码行添加到 WordPress 根目录中的.htaccess文件中。

选项所有索引

这将一劳永逸地停止这种行为。

阻止搜索引擎索引管理部分

搜索引擎爬虫索引几乎所有内容,只要他们被告知不要这样做。 您的管理部分在搜索引擎中被索引可能是一个主要的安全威胁。

因此,最好让爬虫远离所有 WordPress 目录。 最简单的方法是在根目录中创建一个robots.txt文件。 然后将以下代码放入文件中:

禁止:/wp-*

保护您的插件目录

您使用的插件可以告诉恶意用户很多关于您网站的信息,因此隐藏它们是明智的。

您可以轻松隐藏插件。 首先,打开一个文本编辑器,然后创建一个名为index.html的空文件。 然后将此文件上传到您的wp-content/plugins/目录。

删除默认管理员帐户

通过删除管理员帐户,恶意用户不会那么容易知道您的用户名。 由于每个 WordPress 安装都附带一个管理员帐户,因此黑客将更容易侵入您的帐户,因为他们已经知道用户名。

如果您没有新的管理员帐户,则无法立即删除您的管理员帐户,因此请按照下列步骤操作:

  1. 创建一个新的管理员帐户(使用更难猜的用户名)
  2. 登出
  3. 使用新的管理员帐户和密码登录
  4. 删除旧帐户

更改用户的默认访问权限

默认访问权限非常安全,但如果您想安全起见并更好地控制博客上每个用户所拥有的权限,那么这是必不可少的。

设置它非常简单。 你所要做的就是:

  1. 下载角色管理器插件
  2. 将其上传到您的 WordPress 博客
  3. 激活它

然后转到您博客的用户部分。 您可以在那里设置角色管理器插件以满足您的需求。

删除非活动用户帐户

不活跃的用户帐户很烦人,也存在安全风险。 有些人在注册您的博客时会选择弱密码。 如果该帐户处于非活动状态但仍在您的博客上,则恶意用户可能会使用此帐户来访问您的博客。

因此,最好的办法就是删除 WordPress 中的非活动用户帐户(尽管您需要确保它不会破坏任何东西)。 为此,请转到您的 WordPress 仪表板并单击用户 这会将您带到将列出每个用户的页面。

然后继续删除您知道不活动的那些。

将 WordPress 身份验证密钥添加到 wp-config.php

添加 WordPress 密钥是另一个重要的安全措施。 这些密钥应该是随机的,并作为 WordPress cookie 的盐,从而确保更好地加密用户数据。

使用 Wordpress 密钥生成器生成这些密钥,然后将wp-config.php文件中的以下行替换为生成的代码:

define('AUTH_KEY', '把你的独特短语放在这里');
define('SECURE_AUTH_KEY', '把你的独特短语放在这里');
define('LOGGED_IN_KEY', '把你的独特短语放在这里');
define('NONCE_KEY', '把你的独特短语放在这里');

这实际上就是你所要做的。

防止 WordPress 博客被黑客入侵安装 WordPress 防火墙

有一个名为 WordPress Firewall 2 的插件实际上可以保护您的博客免受恶意黑客的攻击。 它的作用是在有人试图入侵您的博客时提醒您。 它当然也会阻止黑客的尝试。

这个插件的问题是它的工作做得太好了。 这意味着它通常还会阻止您对博客进行任何更改。 如果您编辑 WordPress 主题文件,然后单击保存,防火墙插件将阻止它。 手动使用 Smush.it 插件时,我也遇到了这种情况。

这非常烦人,但至少它向您表明该插件确实有效。 如果您想编辑此类文件,您唯一能做的就是禁用插件并稍后重新启用它。

删除 Wordpress 版本字符串

<元内容=”Wordpress 2.5″ />

WordPress 自动添加到主题的版本字符串很重要,因为它会向恶意用户提供有关博客是否已修补的信息。 如果它是一个过时的版本,攻击者将立即开始寻找关于该特定 WordPress 版本公开的安全漏洞。

WordPress 通常会自动将此版本字符串添加到您的主题中。 下面的代码行将告诉 WordPress 不要将版本字符串添加到您的标题中。 您所要做的就是将代码添加到您的functions.php文件中。

<?php remove_action('wp_head', 'wp_generator'); ?>

现在看一下您网站的源代码。 如果生成器元标记仍然在那里,那么您应该检查您的header.php是否包含这样的行:

<meta name=”generator” content=”WordPress <?php bloginfo('version'); ?>” />

如果是这种情况,请继续删除它。

防止 WordPress 博客被黑客入侵——登录仪表板时始终使用 HTTPS

HTTPS 是 HTTP 的安全版本。 使用 HTTPS 时,您的数据(即密码和用户名)不会以明文形式发送,而是经过加密。 这使得人们更难拦截和正确解码您的密码和用户名。

如果您想在登录 WordPress 仪表板时使用 HTTPS,则可以使用以下代码之一并将它们添加到wp-config.php

定义('FORCE_SSL_LOGIN',真);

上面的代码强制 WordPress 在登录到管理面板时使用 SSL,但仅在登录时使用。它不会在使用仪表板时强制使用 SSL。

除了手动执行此操作,您还可以添加一个像 WordPress HTTPS (SSL) 这样的插件

防止 WordPress 博客被黑客入侵 –阻止对 wp-admin 目录的访问尝试

wp-admin文件夹是您博客上最重要的目录之一。 您可以通过它访问您的仪表板。 阻止其他人访问此目录是保护您的博客的重要步骤。

您可以通过在wp-admin目录中创建一个.htaccess文件来完成此操作。 将下面的代码添加到其中,但将 IP 地址更改为您自己的。 如果您不知道自己的 IP 地址是什么,请访问 WhatIsMyIP。

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName“访问控制”
AuthType 基本
命令拒绝,允许
否认一切
# 白名单家庭IP地址
允许来自 64.233.169.99
# 白名单工作IP地址
允许来自 69.147.114.210
允许来自 199.239.136.200

如果您有很多人在您的博客上写作,那么使用此代码是没有意义的,尤其是在他们不断变化的情况下。 问题是您总是需要根据谁需要访问您的博客来添加/删除 IP 地址。

另一个缺点是当您的 Internet 提供商为您分配动态 IP 地址时,这意味着您的 IP 地址会不断变化。 如果是这种情况,则不要将代码添加到.htaccess文件中。

防止 WordPress 博客被黑客入侵 - 限制 WordPress 登录尝试失败的次数

限制尝试失败的次数可防止用户在您的 WordPress 帐户上使用暴力破解技术。 蛮力攻击是通过尝试每个可能的密码来尝试找出用户密码。

作为对策,如果用户连续 3 次密码错误,插件会自动将用户封禁一小时。 登录锁定是这些 WordPress 插件之一。

隐藏仪表板登录错误

您是否注意到,当您尝试使用现有用户名和错误密码登录时,您会收到一条消息:错误:密码错误 如果您使用不存在的用户名和密码登录,则会显示不同的消息,报告Error: Invalid Username

这有助于恶意用户找出存在什么样的用户名。

因此,我建议您将以下行添加到您的functions.php文件中:

add_filter('login_errors',create_function('$a', “return null;”));

现在每次发生错误时都会出现一个空行。 试试看。

推荐文章:提高博客安全性的 10 种方法