站长必备的9个提高WordPress网站安全性的方法
托管网
大约一个月前,这个博客被黑客入侵(编按:Amit Agarwal 的网站)。而其他托管于相同主机商的网站像是 ctrlq.org 和hundredzeros.com 也深受其害,黑客成功从网络上拿下了这些网站。 托管网站的主机商表示这可能发生于某些使用旧版的 WordPress 网站,导致密码不幸泄漏,这段时间虽然历经一些艰难,但幸运的是被删除的网站已经恢复,且流量也回到正常。 以下是我所做的更改,用来提高我的 WordPress 网站安全性,纵使这样的意外可能再次发生。 #1 使用你的 Email 作为登录帐号 当你安装完一个 WordPress 网站时,默认的第一位用户为 “admin”。你应该建立不同的用户名称来管理你的 WordPress 网站,并将默认用户 “admin” 删除,或是将它的权限从“系统管理员”降级为“订阅者”。 你也可以建立一个完全乱数(难以被猜中)的用户名称,然后使用你的 Email 来登录 WordPress。插件 WP-Email Login 可以加入此支持,使用你的 Email 取代帐号登录。 #2 不要向全世界显示你的 WordPress 版本 WordPress 网站会在源代码显示版本号,让其他人能够知道你正在执行旧的 WordPress。 要从网页里移除 WordPress 版本是很简单的一件事,但你需要做一些额外的增强,从你的 WordPress 目录将 readme.html 文件删除,因为它也会把你所使用的 WordPress 版本显示给全世界。 #3 别让其他人拥有”写入”你 WordPress 目录的权限 登录你的 WordPress 网站 Linux 系统列,执行以下指令来取得所有“公开”、其他用户皆能写入的目录列表。 find . -type d -perm -o=w 你也许可以执行以下两行指令,来将你 WordPress 内的文件和目录设置为正确的权限(参考资料)。 find /your/wordpress/folder/ -type d -exec chmod 755 {} \; find /your/wordpress/folder/ -type f -exec chmod 644 {} \; 对目录来说,755(rwxr-xr-x) 意味着只有拥有者具备写入权限,其他人只有读取和执行的权限。对文件来说,644 (rw-r–r–) 意味着只有文件拥有者具备读取和写入权限网站安全代码,其他人为只读。 #4 重新命名你的 WordPress 数据库前缀 如果你使用默认选项来安装 WordPress 的话,你的 WordPress 数据库应该会像是 wp_posts 或 wp_users。将数据库的前缀(wp_)更改为其他随机值是比较好的作法,插件Change DB Prefix可以让你在弹指之间重新命名你的数据库前缀。 #5 防止用户浏览你的 WordPress 目录结构 这很重要。开启你 WordPress 根目录底下的 .htaccess 文件,然后在最上方加入这行。 Options -Indexes 这能够防止其他人在能建立文件列表时看到你文件夹内的所有文件。例如目录下缺少默认的 index.php 或 index.html 时。 #6 更新 WordPress 安全密钥 开启此网页来为你的 WordPress 网站产生八组安全密钥。开启 WordPress 目录下的 wp-config.php 文件,将默认的密钥以产生的密钥取而代之。 这些随机的字串能使你储存于 WordPress 的密码更加安全,另一个好处是,当有人在你不知情的情况下登录 WordPress,他们将会被立即登出,使他们的 cookies 失效。 #7 保留 WordPress PHP 和数据库错误记录 从错误记录有时候可以发现针对你 WordPress 所发出的无效数据库查询或文件查询。我更喜欢插件 Error Log Monitor,因为它能定期通过 Email 发送错误日志到你的邮箱,也能显示于你的 WordPress 后台。 要在 WordPress 启用错误日志功能,将以下代码代码加入你的 wp-config.php 文件,记得要把/path/to/error.log 替换为你的日志文件实际路径。error.log 应该放在无法直接从浏览器存取得到的目录。(参考资料) define('WP_DEBUG', true); if (WP_DEBUG) { define('WP_DEBUG_DISPLAY', false); @ini_set('log_errors', 'On'); @ini_set('display_errors', 'Off'); @ini_set('error_log', '/path/to/error.log'); } #8 以密码保护 Admin 后台 使用密码来保护 wp-admin 目录是一个不错的方法,因为浏览你的公开 WordPress 网站并不需要用到这目录下的任何文件。一旦设置完成,即使是授权的用户也需要输入两道密码才能登录他们的 WordPress 后台。 #9 追踪你的 WordPress 服务器登录动态 你可以在 Linux 下使用 “last -i” 指令来列出所有登录你 WordPress 服务器的用户,包括他们的 IP 位址。如果你发现列表内有未知的 IP 来源,那肯定要修改密码了。 此外,下面的指令将显示较长时间区间的登录动态,并使用 IP 位址分组(将 USERNAME 改为你的用户名称)。 last -if /var/log/wtmp.1 | grep USERNAME | awk '{print $3}' | sort | uniq -c 使用插件来监控你的 WordPress 网站 WordPress.org 插件库拥有不少好用的安全相关插件,可以持续监控你的 WordPress 网站是否有被入侵,或是其他可疑活动。这些是我会建议使用,也较为基本的安全插件。 Exploit Scanner – 它会迅速扫描你的所有 WordPress 文件和文章,并列出潜藏恶意代码代码的。例如垃圾链接可能会使用 CSS 或 IFRAME 方式隐藏在你的 WordPress 文章里,而这个插件可以将它们找出来。WordFence Security – 这是一个非常强大、且应该使用的安全插件。它会比对你 WordPress 的核心文件和原始文件间是否已被修改。而且,该插件会锁定尝试登录你的网站却失败的用户。WordPress Sentinel – 另一个实用的插件,可以监控你的 WordPress 文件,当有任何文件被加入、删除或修改时会发出警告。WP Notifier – 如果你不常登录你的 WordPress 后台,那这插件适合你。它会在你安装的主题、插件和 WordPress 核心有新的更新时以 Email 通知你。VIP Scanner – “官方”安全插件将扫描你的 WordPress 主题有无任何问题,它也能检测出有无任何的广告代码代码被注入你的 WordPress 主题里。 小技巧:你也可以使用以下 Linux 指令来列出近三天被修改的文件列表。将 mtime 改为 mmin 可以看到 “n” 分钟前被修改的文件列表。 find . -type f -mtime -3 | grep -v "/Maildir/" | grep -v "/logs/" 提高 WordPress 登录页面安全性 你的 WordPress 登录页面是每个人都可以存取的,但如果你想防止未授权的用户登录 WordPress,你有以下三种选择。 使用 .htaccess 加入密码保护– 在 WordPress 认证以外加入另一道帐号密码来保护你的 wp-admin 目录。Google Authenticator – 这出色的插件能为你的 WordPress 加入两步骤验证功能。除了输入正确的密码外,还必须搭配手机应用程序来输入随机产生的验证码。Login Dongle – 这个插件使用一个非常独特的方法来保护你的 WordPress。它能产生一个书签列(加上秘密问题),你可以将它加入浏览器。当你要登录 WordPress 时,输入你的密码并按下书签列才能登录 WordPress– 登录页面的按钮将无法使用。 更多推荐:安装 WordPress后你应该做的25件事,wordpress全面优化指南 本文资料参考自How to Improve the Security of your WordPress Blog (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |