innoweb/silverstripe-spamprotection-honeypot

为 Silverstripe CMS 提供不可见的蜜罐垃圾邮件保护。

安装: 1,317

依赖关系: 0

建议者: 0

安全性: 0

星标: 0

关注者: 2

分支: 0

开放问题: 0

类型:silverstripe-vendormodule

2.1.0 2024-06-20 02:42 UTC

This package is auto-updated.

Last update: 2024-09-20 03:14:38 UTC


README

Version Silverstripe Downloads Issues License

概述

为 Silverstripe CMS 提供不可见的蜜罐垃圾邮件保护。

创建用户不可见的表单字段,如果包含的数据被篡改,则无效化提交。同时也无效化响应过快的提交。

需求

注意:此版本与 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-honeypotsymbiote-library/silverstripe-spamprotection-honeypot 提供的灵感。

许可

BSD 3-Clause 许可协议,请参阅 许可