Implement honeypot field as spam countermeasure

This commit is contained in:
Björn Fromme
2020-10-16 15:13:34 +02:00
parent e185e4f64c
commit 54bcb03d2f
4 changed files with 38 additions and 0 deletions
@@ -64,6 +64,13 @@ class AjaxFormController extends ActionController
public function processFormAction(ContactForm $contactForm)
{
$response['status'] = 'ok';
// Don't take further actions in case honeypot field is filled in
// as a spam countermeasure
if ($contactForm->getSubject()) {
return json_encode($response);
}
$this->emailService->send(
$this->settings['contactFormToEmail'],
$this->settings['contactFormToName'],
@@ -36,6 +36,13 @@ class ContactForm
*/
protected $formType = 1;
/**
* Honeypot field!!
*
* @var string
*/
protected $subject;
/**
* @var string
* @TYPO3\CMS\Extbase\Annotation\Validate("NotEmpty")
@@ -117,6 +124,22 @@ class ContactForm
$this->formType = $formType;
}
/**
* @return string
*/
public function getSubject()
{
return $this->subject;
}
/**
* @param string $subject
*/
public function setSubject($subject)
{
$this->subject = $subject;
}
/**
* @return string
*/