给WordPress集成reCAPTCHA验证码

垃圾评论太多了,用Akismet过滤掉明显的垃圾内容后,每天也会有数百甚至上千条待审核垃圾评论。无奈之下,只得求助于验证码,让机器评论减到最小值。reCAPTCHA是个简单方便的选择。

1 介绍

reCAPTCHA是一个免费服务,用以防止spam(电子形式的垃圾信息)、恶意注册以及其他形式的计算机伪装人类的攻击。 CAPTCHA全称Completely Automated Public Turing test to tell Computers and Humans Apart,是区分计算机与人类的全自动图灵测试。reCAPTCHA可以小部件(widget)形式轻松地添加到博客、论坛、注册表单等之中。除了保护站点,Google还使用reCAPTCHA把旧图书和报纸数字化。

2 申请

访问http://www.google.com/recaptcha/,点击右上角的“Get reCAPTCHA”。

integrates-recaptcha-to-wordpress-01然后点击“Sign up Now!”,如果没有登录Google,此时会要求登录。

integrates-recaptcha-to-wordpress-02在“1”处输入域名,比如caibaoz.com。如果验证码只用于这一个域名,“2”处不需要勾选;如果验证码用于所有网站,则需要勾选此复选框。设置完成后,点“CREATE”按钮。

integrates-recaptcha-to-wordpress-03点击caibaoz.com链接,就能看到你所获得的“Public Key”和“Private Key”。

3 设置

安装并启用WP-reCAPTCHA插件,然后进入“设置->WP-reCAPTCHA”。

integrates-recaptcha-to-wordpress-04填写申请获取的Public Key和Private Key。

integrates-recaptcha-to-wordpress-05“Enable for comments form”选中,则必须输入reCAPTCHA才能提交评论;“Hide for Registered Users who can”选中,可以让某些或全部注册用户不需要输入验证码;Theme是验证码颜色主题,可根据实际需要选择。

integrates-recaptcha-to-wordpress-06“Enable for registration form”选中,则必须输入reCAPTCHA才能注册用户。

integrates-recaptcha-to-wordpress-07“reCAPTCHA Ignored”和“Incorrect Guess”分别是忽略和输错验证码时会出现的提示信息。

上述信息都输入完毕后,点击“Save reCAPTCHA Changes”按钮保存设置。

剩余部分是MailHide设置,要显示邮箱地址,必须输入验证码。reCAPTCHA账户中的“Protect your email”就是申请Key的地方。我没有用到,就不涉及了。

4 防火墙

如果使用了防火墙,可能会使得reCAPTCHA不能正常工作,需要开放下述Google服务器地址的80端口访问权限:

ip4:216.239.32.0/19
ip4:64.233.160.0/19
ip4:66.249.80.0/20
ip4:72.14.192.0/18
ip4:209.85.128.0/17
ip4:66.102.0.0/20
ip4:74.125.0.0/16
ip4:64.18.0.0/20
ip4:207.126.144.0/20
ip4:173.194.0.0/16

地址偶尔会改变,需要隔段时间检查一下。Windows下获取这些地址的命令是:

nslookup -type=TXT _netblocks.google.com

Linux下的命令是:

dig -t TXT _netblocks.google.com

我使用iptables作为防火墙,配置命令是:

iptables -A INPUT -p tcp --sport 80 -s 216.239.32.0/19 -j ACCEPT
iptables -A INPUT -p tcp --sport 80 -s 64.233.160.0/19 -j ACCEPT
iptables -A INPUT -p tcp --sport 80 -s 66.249.80.0/20 -j ACCEPT
iptables -A INPUT -p tcp --sport 80 -s 72.14.192.0/18 -j ACCEPT
iptables -A INPUT -p tcp --sport 80 -s 209.85.128.0/17 -j ACCEPT
iptables -A INPUT -p tcp --sport 80 -s 66.102.0.0/20 -j ACCEPT
iptables -A INPUT -p tcp --sport 80 -s 74.125.0.0/16 -j ACCEPT
iptables -A INPUT -p tcp --sport 80 -s 64.18.0.0/20 -j ACCEPT
iptables -A INPUT -p tcp --sport 80 -s 207.126.144.0/20 -j ACCEPT
iptables -A INPUT -p tcp --sport 80 -s 173.194.0.0/16 -j ACCEPT

5 参考文档

5.1 FirewallsAndRecaptcha

Visits: 2610

此条目发表在网站分类目录,贴了标签。将固定链接加入收藏夹。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

3 × 4 =