lingo / silverstripe_honeypotform
一个提供蜜罐字段的表单,用以欺骗机器人并减少垃圾邮件。
dev-master
2017-07-06 19:02 UTC
Requires
- silverstripe/framework: >=2.4
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”或类似名称的字段。