innoweb / silverstripe-spamprotection-honeypot
为 Silverstripe CMS 提供不可见的蜜罐垃圾邮件保护。
2.1.0
2024-06-20 02:42 UTC
Requires
Requires (Dev)
- phpunit/phpunit: ~9.5
README
概述
为 Silverstripe CMS 提供不可见的蜜罐垃圾邮件保护。
创建用户不可见的表单字段,如果包含的数据被篡改,则无效化提交。同时也无效化响应过快的提交。
需求
- Silverstripe 框架 5
- Silverstripe SpamProtection 4.
注意:此版本与 Silverstripe 5 兼容。对于 Silverstripe 4,请参阅 1 版本分支。
安装
运行以下命令将此模块添加为需求并通过 composer 安装。
$ composer require innoweb/silverstripe-spamprotection-honeypot
然后运行 dev/build。
用法
在 app/_config
中创建一个配置文件 spamprotection.yml
,包含以下配置
--- Name: app-spamprotection --- SilverStripe\SpamProtection\Extension\FormSpamProtectionExtension: default_spam_protector: Innoweb\SpamProtectionHoneypot\SpamProtector\HoneypotSpamProtector
我们还建议将默认字段名从 Captcha
更改为不那么明显的内容
SilverStripe\SpamProtection\Extension\FormSpamProtectionExtension: field_name: 'AdditionalInformation'
然后通过调用 Form::enableSpamProtection()
在您的表单上启用垃圾邮件保护。
public function ExampleForm() { $form = new ExampleForm($this, 'Example'); $form->enableSpamProtection(); return $form; }
您可以使用以下配置更改检查响应是否过快的时间量。
Innoweb\SpamProtectionHoneypot\FormField\HoneypotField: time_limit: 12
此示例将时间更改为 12 秒。默认设置为 8 秒。
您还可以更改默认值字段中使用的默认文本,通过您的 lang 文件(例如 app/lang/en.yml
)覆盖翻译
en: Innoweb\SpamProtectionHoneypot\FormField\HoneypotField: DefaultValue: 'Some text that should not be touched.'
默认为 '请保持原样。'
。
贡献
有关详细信息,请参阅 贡献。
鸣谢
感谢 studiobonito/silverstripe-spamprotection-honeypot 和 symbiote-library/silverstripe-spamprotection-honeypot 提供的灵感。
许可
BSD 3-Clause 许可协议,请参阅 许可