所有文章

免费的 WordPress 安全插件:应该检查什么,绝不该做什么?

不用读代码,就能评判一款免费安全插件的五条标准,以及四种应该让你打消念头的做法。

Radek,ENSOMEDIA发布于 5 分钟阅读In EnglishPo polskuAuf DeutschEn españolEn françaisبالعربية

WordPress.org 插件目录里有许多名字带“security”的插件,几乎都有免费版。它们的介绍读起来差不多,你也不会去读代码。那该怎么选?

下面是五条你自己就能判断的标准:看插件目录里的介绍页,看设置界面,看第一次扫描。之后是一份免费插件不该做的事情清单,并附上插件目录自己的规定作依据。

插件能做什么,不能做什么

安全插件从网站内部工作。它能看到服务器上的文件、数据库、用户账户和设置。从外部扫描看不到这些,所以好的插件覆盖的是那些需要内部权限才能检查的内容。

不过,插件仍然是 WordPress 的一部分。取得了管理员权限的人,可以把它关掉,或者改掉它的设置。所以没有任何插件能提供完整的防护,诚实的插件也不会这样承诺。把它当作一层防护,与更新、备份和从外部检查网站并用。

1. 它负责检查和报告,只在你同意时才改动

大部分价值来自只读的检查:

  • 把 WordPress、插件和主题的文件,与你所用版本在 WordPress.org 上的官方校验和比对,这样能发现被篡改的文件,
  • 查找 uploads 文件夹里的 PHP 文件,那里不该有它们,
  • 列出所有拥有管理员权限的账户,
  • 找出服务器会交给任何人的文件:wp-config.php 的副本、数据库导出文件、含有网站备份的压缩包,
  • 发现让入侵更容易的设置:忘了关的调试模式、后台里的文件编辑器、开放的用户注册。

改动,比如关闭 XML-RPC 或把文件移入隔离区,应当只在你点击按钮之后才发生。自动“修复”可能让一家网店瘫痪:插件删掉了它觉得可疑的文件,结果那个文件是主题的一部分。

怎么检查:在介绍页里找一句话,说明插件未经你同意不会改动任何内容。第一次扫描之后,看看结果只是展示出来,还是已经有东西被改了。

2. 它不会拖慢网站

完整的文件扫描对服务器来说是实实在在的工作量。好的插件会把它拆成后台里的小步骤,跳过没有变化的文件,并且每次访问你的页面时不做任何重活。

怎么检查:安装前和安装一天后,在 PageSpeed Insights 里测一下加载时间。再看看主机后台,通常会显示 CPU 占用。如果安装后明显上升,主机商开始发警告,说明有问题。

3. 它用大白话说话,不会谎报军情

每条发现都需要三样东西:它意味着什么,严重程度如何,该怎么办。“文件中有可疑的 base64 字符串”,没有任何解释,等于什么也没告诉你。

提醒也遵循同样的规则。一款为每件小事都给你发邮件的插件,一周之内,就会被扔进没人读的文件夹。更好的做法是,它只就新出现的或恶化的问题发信,并把不确定的结果标为不确定,而不是拉响警报。

4. 它盯着更新

过时的插件,是 WordPress 网站最常见的入口。关于这一点,过时的 WordPress 插件那篇文章里有更多内容。

好的安全插件会显示哪个插件或主题有已知漏洞,哪个版本修复了它。它还会提醒你,哪些插件已在 WordPress.org 目录中被关闭,或被作者弃置,并告诉你停用的插件仍然留在服务器上。有了这份清单,你就知道今天该更新什么,该删除什么。

5. 它给你一条通向外部视角的路

从内部,你看不到访问者看到的一切。服务器设置、DNS 里的邮件记录、互联网看到的证书、被遗忘的子域名,这些都要从外部检查。好的插件,要么自己通过互联网请求自己的网站,例如测试本该保密的文件能不能被访问,要么让你连接到外部扫描。

两种视角的区别,在在线网站安全扫描工具那篇文章里有讲。

免费插件绝不该做的事

WordPress.org 目录有详细的插件准则。其中几条可以直接转化为你能期待的东西:

  • **未经同意,不发送关于你的数据。**准则 7 规定,插件未经用户同意不得跟踪用户。如果插件与外部服务通信,介绍页应当写明是哪个服务,以及原因。
  • **试用期过后,不收回功能。**准则 5 不允许目录中出现试用版软件,所以收录的插件不应在几天后失效。
  • **不用付费版的广告塞满你的仪表盘。**准则 11 规定,插件不应劫持管理后台的仪表盘。关于付费方案的一条提示是正常的。每个页面都挂横幅就不正常。
  • **不承诺完整的防护。**承诺万无一失,就该更仔细地读它的介绍页。

一个选择

我自己做了这样一款插件:WordPress.org 目录里的 Ensomedia Security,与 ShieldWave 相连。请用与其他插件相同的五点来评判它。以下是它介绍页上的事实:

  • 它运行 25 项检查,所有检查、定时扫描和邮件提醒都免费,不需要账号,没有限制,
  • 它把文件与 WordPress.org 的校验和比对,并监控 WordPress.org 无法验证的文件的变化,
  • 它在后台分成短小的步骤扫描,不会重复分析没有变化的文件,
  • 只有在你点击按钮或打开开关时,它才会改动文件、用户和设置,
  • 它不是完整的 Web 应用防火墙,也不会替你清理文件:它会说明该改什么,由你、你的开发者或主机商去改,
  • 它可以选择连接到 shieldwave.io 的控制台,网站会和它的外部扫描结果一起显示。

逐个界面的使用指南,在单独的一篇介绍这款插件的文章里。

安装任何安全插件之后该做什么

  1. 运行第一次扫描,先读最严重的发现。
  2. 更新或删除有已知漏洞的插件和主题。
  3. 过一遍管理员列表,移除不再与你合作的人。
  4. 设定一个定时扫描。每周一次就够了。
  5. 从外部检查网站,看看插件看不到的部分。

**从外部检查你的网站。**在 shieldwave.io 输入你的网址。大约需要 90 秒,不需要密码,也不需要插件。