大约一个月前,这个部落格被黑客入侵(编按:Amit Agarwal 的网站)。而其他托管于相同主机商的网站像是 ctrlq.org 和2hundredzeros.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_)更改为其他随机值是比较好的作法,外挂2Change DB Prefix2可以让你在弹指之间重新命名你的资料表前缀。

#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 档案,记得要把2/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 1{print $3}1 | 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 – 登入頁面的按鈕將無法使用。  

教你9个提升 Wordpress 网站安全性的方法的更多相关文章

  1. WordPress网站搬家的问题

    老邢的博客搬家全过程(wordpress搬家知识总结)   网站搬家过程中的几个问题   WordPress网站搬家的方法   WORDPRESS.ORG - zh-cn:WordPress 博客搬家 ...

  2. 24款WordPress网站AI插件大盘点

    ------------恢复内容开始------------ 你想把AI(人工智能)技术和机器学习技术添加到自己的WordPress网站吗?本文中,我会分享24个利用AI技术和机器学习技术的WordP ...

  3. WordPress安全篇(1):WordPress网站启用HTTPS详细教程

    以前我们浏览网页使用的都是HTTP协议,HTTP使用明文传输,所以传输过程中很容易遭受黑客窃取.篡改数据,很不安全.在WordPress网站上启用HTTPS协议访问后,能大大提升站点的安全性,启用HT ...

  4. 为什么别人的 WordPress 网站那么快?

    越来越多的人使用 WordPress 来搭建网站了,W3techs 最新数据统计显示[1],截止到2021年11月3日,全网有43.0%的网站都是基于WordPress 搭建的.那么问题来了,为什么别 ...

  5. wordpress网站被挂马以及防御方法

    wordpress本身的安全性是非常的高的,一般不会被轻易的破解,被挂马,但是我们也不能够过度迷信wordpress的安全性,凡是连接上互联网的服务器和电脑,都存在被破解的风险性.所以我们在日常维护自 ...

  6. WordPress SEO ☞ WordPress网站终极优化指南

    原文地址:http://www.eastdesign.net/wordpress-seo/ 最新消息,东方设计学院 WordPress SEO 系列视频教程正在持续更新中,目前为了不至于让视频传播过于 ...

  7. WordPress网站加速优化,一键免费使用七牛CDN插件

    利用wordpress搭建网站是个人建站的主流方案,我曾分享过wordpress网站加速优化必做的十件事,帮助了不少个人站长.今天介绍帮助wordpress网站提升速度至少10倍的免费CDN加速插件: ...

  8. 全面提升WordPress前台和后台的 打开速度的方案

    装好WordPress之后,准备想访问自己的网站,或是登入后台的时候,却发现,这个速度不敢恭维,即使是本地话的程序,也是慢慢的.操作起来也要挺久.那下面我们来解决一下这个问题,提升WordPress的 ...

  9. 搭建一个wordpress网站需要做哪些工作

    今天做了自己的个人网站:二飞日志 之前因为服务器的问题,因为备案的原因辛辛苦苦做的站点数据没了.还好的是没有多少数据.没关系,重新来.有了上一次的经验,这次搭建起来比较顺手.但是也出现了几个问题.下面 ...

随机推荐

  1. tomcat输出servlet-api.jar - jar not loaded 解决办法

    tomcat输出servlet-api.jar - jar not loaded 解决办法 启动tomcat后,控制台输出信息:WEB-INF/lib/servlet-api.jar not load ...

  2. 【单点登录】【两种单点登录类型:SSO/CAS、相同一级域名的SSO】

    单点登录:SSO(Single Sign On) 什么是单点登录:大白话就是多个网站共享一个用户名和密码的技术,对于普通用户来说,只需要登录其中任意一个网站,登录其他网站的时候就能够自动登陆,不需要再 ...

  3. CAS示例环境部署及配置

    http://wenku.baidu.com/link?url=d6JjWqOtuUediSkV18XagtVG9lVC2hTiaIEimfIgv1PIW8RMA1sXeIqqtJkW90lleYPQ ...

  4. %----format 格式化字符串---- 生成器---- 迭代器

    %方式格式化字符串 顺序传参数 o转换8进制x转换十六进制 tp1 = "i am %s" % "alex"tp2 = "i am %s age %d ...

  5. MySQL存储过程中实现回滚

    用存储过程处理复杂的业务时,可能涉及到对多张表格的操作,在任一个步骤出了问题,就需要对前面的操作回滚.举例实现: DROP PROCEDURE IF EXISTS pro_test; CREATE P ...

  6. CSS ::before 和 ::after 伪元素另类用法

    原文地址:http://justcoding.iteye.com/blog/2032627 CSS 有两个说不上常用的伪类 :before 和 :after,偶尔会被人用来添加些自定义格式什么的,但是 ...

  7. 在Excel中制作复合饼图

    在Excel中插入饼图时有时会遇到这种情况,饼图中的一些数值具有较小的百分比,将其放到同一个饼图中难以看清这些数据,这时使用复合条饼图就可以提高小百分比的可读性. 文中的复合饼图只是方便以后记忆,故不 ...

  8. CocoaPods的安装和使用

    一. CocoaPods简介 CocoaPods是一个用来帮助我们管理第三方依赖库的工具.在开发iOS应用时,会经常使用第三方类库,比如SDWebImage.AFNetworking等等,手动的下载与 ...

  9. Kanzi编程基础2 - Kanzi节点读取和属性设置

    UI设计师在Kanzi studio把Kanzi的节点做好后,就要编码读取这些节点并根据实际功能去控制刷新它. Kanzi读取节点的api发生过很多次变化,从2.7.2.8到3.0,每次变化都比较大, ...

  10. centos7 加入自启动服务的方法 以jexus为例

    在/lib/systemd/system 下创建文件jexus.service vi jexus.service 内容如下 Unit Description=jexus After=network.t ...