lingo/silverstripe_honeypotform

一个提供蜜罐字段的表单,用以欺骗机器人并减少垃圾邮件。

安装: 16

依赖: 0

建议者: 0

安全性: 0

星标: 2

关注者: 2

分支: 1

开放问题: 0

类型:silverstripe-module

dev-master 2017-07-06 19:02 UTC

This package is not auto-updated.

Last update: 2024-09-29 04:20:11 UTC


README

一个提供蜜罐字段和检查方法的自定义表单。该字段是一个表单中的输入字段,人类用户被指示不要填写。在任何情况下,该字段通常都会对用户隐藏。垃圾邮件机器人通常会填写所有字段,因此我们可以检查当不应填写时这个字段是否被填写。

安装

将此包安装到您的SilverStripe目录中的任何位置。或者使用Composer...

使用方法

在您通常使用Form的地方,现在可以使用HoneypotForm。您可以继承它或直接使用它。

在您的控制器init方法中,您可能想要调用以下代码

        HoneypotForm::render_css();

这将向页面添加CSS以隐藏蜜罐字段。

验证

要检查“飞虫”是否落入蜜罐,即垃圾邮件机器人是否使用表单,请在您的表单处理函数中使用以下代码。

    public function myFormSubmission($data, $form) {
        if ($form->validateHoneypot($data)) {
            // User is either a bot, or very bad at following instructions!
            // ...
        } else {
            // The form looks okay
            /// ...
        }
        ...

机器人欺骗技巧

为了使机器人更难,字段名称和类名会不断变化,这样它们就不能简单地避开具有类名“honeypot”或类似名称的字段。