不打无准备之仗:Altcha如何为Typecho保驾护航
在我的网站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谢谢喵~