在我的网站xiedada.net荒废很长一段时间之后,我终于使用Typecho重新搭起了主站。但是,由于先前被Turnstile锁在门外给我带来了心理阴影,我此次特意选择了适合自托管的新方案——Altcha,一个源自欧洲被GDPR逼出来的Captcha方案。

Altcha到底强在哪?

Altcha作为一个基于PoW的人机验证方案,它不像Cloudflare Turnstile一样受到第三方网站可达性的牵制,而是与网站共存亡,只要网站可达Altcha就能工作,有效避免了Turnstile循环或不可达导致的无法登录/评论。

另外,Altcha的内容混淆(Obfuscation)可以保护网站敏感内容免受机器人爬取,但允许人类访客点击之后正常查看,一般是电子邮件地址、域名之类容易被爬虫识别并造成骚扰的内容。

Typecho是如何用上Altcha的

Typecho原本没有针对Altcha的插件,但有针对Turnstile的插件,因此我使用一种长于网络安全的开源模型在Turnstile插件的基础上,通过通读Altcha文档,令Agent自主开发和测试了这款插件,它不仅实现了基础的登录和评论保护功能,还实现了原本插件没有的内容——内容混淆,以及针对白名单账户的XML-RPC豁免(网页端照常验证),以放行合法Bot。

该插件以GNU GPLv3开源于GitHub,欢迎使用。

我也想用

从GitHub Releases下载压缩包(不要克隆,仓库不含Altcha库和前端资产),解压到Typecho安装目录下的usr/plugins/目录,在Typecho的制台启用即可。默认会启用评论验证;登录、内容保护、XML-RPC 豁免按需开启。难度、算法、有效期、CDN 来源都可以在插件设置里调。
内容保护写法:

<altcha-protect>mailto:admin@example.com</altcha-protect>
<altcha-protect label="查看电话">188 8888 8888</altcha-protect>

结语

Altcha不是万能的,但把爬虫拖死是完全可能的,只要提高交互成本且防住重放,就已经能挡住大多数简单脚本。如果有问题欢迎Issue,觉得有用点个Star谢谢喵~

标签: none

添加新评论