Keiner möchte Spam Mail erhalten. Aber noch schlimmer ist es, wenn der eigene Online Shop zum Versender von Spam-Mails wird. Gerade Kontaktformulare sind hier immer wieder Angriffen ausgesetzt. Daher ist es wichtig Maßnahmen gegen unerwünschten Spam zu treffen.

Spamschutz Nr. 1: Honeypot

Eine Möglichkeit sich vor Spam zu schützen ist ein so genannter „Honeypot“. Dabei wird ein zusätzliches Formularfeld in das Kontaktformular integriert. Dieses Formular wird normalen Besuchern nicht angezeigt. Viele Bots füllen dieses Formular aber vollständig aus – und damit auch das zusätzliche Feld. Formulare bei denen das Feld ausgefüllt ist werden dann gar nicht erst versendet. So kann man sich wirksam vor einfachen Bots schützen. Gegen modernere Bots hilft uns das mittlerweile allerdings nur mehr wenig.

Spamschutz Nr. 2: Captcha

Captchas sind ein sehr effektiver Weg um Bots auszusperren. Am bekanntesten ist dabei Google ReCaptcha. In der aktuellen Version 3 müssen dabei keine zusätzlichen Eingaben mehr getätigt werden. Das ist natürlich gut für die Usability der Seite.
Für PrestaShop als auch für WordPress gibt verschiedene Captcha Plugins / Module.

Spamschutz Nr. 3: Spamfilter ohne zusätzliches PrestaShop Modul

Mit zusätzlichen Spamfiltern werden unerwünschte Mailadressen oder Inhalte ausgefiltert. So kann man spezielle Mailadressen oder ganze Maildomains auf eine Blacklist setzen.

Beim alten PrestaShop 1.6 oder Thirtybees gibt es mit einem Override sogar eine Möglichkeit das einfach und ohne zusätzliche Module / Plugins zu realisieren – wie auch der Kollege von NemoPS vorgezeigt hat. (Volles Tutorial von NemoPS hier)

Dabei muss nur folgender Code unter /override/controllers/front/ContactController.php eingefügt werden:

class ContactController extends ContactControllerCore
{
public function postProcess()
{
if(Tools::isSubmit('submitMessage')) {

$message = Tools::getValue('message');
$from = Tools::getValue('from');

$banned_in_email = ['.ru', 'qq.com', '.vn'];
$banned_content = ['email marketing'];

foreach ($banned_in_email as $string) {
if(strstr($from, $string))
$this->errors[] = Tools::displayError('This email address is not allowed');
}

foreach ($banned_content as $string) {
if(strstr($message, $string))
$this->errors[] = Tools::displayError('Invalid Content');
}
}
parent::postProcess();
}
}

Leider funktioniert dies ab PrestaShop 1.7 nicht mehr.
Hier haben wir jedoch die Möglichkeit das Modul „contactform“ zu adaptieren.

In der Datei modules/contactform/contactform.php muss dabei in der function „sendmessage“ vor dem Versand der Mail folgender Code eingefügt werden:

if(Tools::isSubmit('submitMessage')) {

$message = Tools::getValue('message');
$from = Tools::getValue('from');

$banned_in_email = ['.ru', 'qq.com', '.vn'];
$banned_content = ['email marketing'];

foreach ($banned_in_email as $string) {
if(strstr($from, $string))
 $this->context->controller->errors[] = $this->trans('Invalid email address.',[], 'Shop.Notifications.Error' ); 
}

foreach ($banned_content as $string) {
if(strstr($message, $string))
 $this->context->controller->errors[] = $this->trans('Invalid message',[],'Shop.Notifications.Error'); 
}
}

Für PrestaShop 1.7 können wir die Funktion aus der alten PrestaShop Version fast 1:1 – mit nur kleinen Adaptionen übernehmen – das macht es für uns natürlich besonders einfach. Bei beiden Prestashop Version (1.6 und 1.7) müssen die Variablen ‚$banned_in_email‘ und ‚$banned_content‘ adaptiert werden – ganz ohne Programmierung kommt man hier also nicht davon. Einmal eingerichtet funktioniert diese Methode aber sehr zuverflässig und muss nur gegebenfalls leicht adaptiert werden.

 

Spamschutz Nr. 4: Spamfilter mit zusätzlichem Prestashop Modul
Zusätzlich zu den bereits genannten Methoden gibt es Firewall und Anti-Spam Module für PrestaShop. Da diese PrestaShop Module meist mehrere Methoden kombinieren bieten sie entsprechend umfangreichen Schutz zu relativ günstigen Preisen und können direkt über den Addon-Store von PrestaShop bezogen werden.

Fazit
Spams sind weiter ein Problem für jeden Seitenbetreiber. Und Kontaktformulare werden auch zukünftig ein Angriffspunkt für Spambots bleiben. Jedoch lässt sich erhöhtes Spamaufkommen aus den Kontaktformularen sehr gut in den Griff bekommen und vermeiden. Eine korrekte Einrichtung des Shops und des Servers inklusive aktivem Spamfilter am Mailserver sind dafür natürlich eine Grundvoraussetzung, die immer gegeben sein sollte. Zusätzlich ist eine Mischung der oben genannten Methoden sehr wirksam um Spam aus dem Kontaktformular bereits vor dem Versand der Mails zu vermeiden.