SicherheitIn letzter Zeit erreichen uns hin und wieder Anfragen, weil Shopbetreiber nach Aktivieren des Anfrageformular-Moduls plötzlich häufig Spam erhalten. Und das, obwohl sie das Captcha, also den Spamschutz des Formulars, aktiviert haben.

Das Problem ist jedoch keines, das nur die Anfrageformulare betrifft, die durch das Modul im Shop erzeugt werden – sondern ein generelles, das auch das normale Kontaktformular von OXID betreffen kann. Denn unser Modul verwendet als Spamschutz die von OXID mitgelieferte Captcha-Funktionalität.

Dass das Spamaufkommen plötzlich höher ist (oder überhaupt erst entsteht), liegt vielmehr daran, dass die Anzahl der Formulare im Shop durch das Modul extrem erhöht wird. Denn während Sie vorher nur ein Kontaktformular hatten, haben Sie nun auf jeder Artikelseite ein Formular.

Die Lösung ist relativ einfach. OXID liefert zur Sicherung des Captcha-Codes einen Captcha-Key aus, der in der Datei config.inc.php gesetzt wird. Viele Shops haben hier sowohl bei Neuinstallation als auch bei Updates einfach den Standardwert belassen, so dass die eigentliche Funktion dieses Wertes außer Kraft gesetzt wird. Denn der CaptchaKey erfüllt seine Aufgabe erst dann, wenn er tatsächlich ganz individuell vom Shop vergeben wird. Erst dann wird Ihr Captcha beinahe unentschlüsselbar und sicher.

Sie finden den Wert in der Datei config.inc.php im Shop-Rootverzeichnis ganz unten.

$this->captchaKey = '<captchaKey>';

Der Wert in den Hochkommata ist der Captcha-Key, der hier angezeigte <captchaKey> ist der Standardwert, der nach meiner Schätzung von über 50% der OXID Community Shops verwendet wird, weil Shopbetreiber gar nicht auf die Idee kommen, ihn zu ändern. Durch diese weite Verbreitung wird ein Spam-Angriff jedoch massiv erleichtert. Ich erkläre gleich, warum.

Wichtig ist gar nicht, was Sie da eintragen, wichtig ist nur, dass es anders ist als der Standard. Denn sobald Sie auch nur einen Buchstaben entfernen oder hinzufügen, wird die Wahrscheinlichkeit, dass noch ein OXID-Shop denselben Key verwendet, massiv verringert. Verwenden Sie dort eine Zufalls-Zeichenkette von Buchstaben und Zahlen, dann geht diese Wahrscheinlichkeit gegen Null.

Warum ist das so entscheidend?

Um das zu verstehen, muss man wissen, wie ein Captcha funktioniert.

Zunächst generiert der Shop jedesmal, wenn ein Formular angezeigt wird, einen neuen Captcha-Code, der aus mehreren Buchstaben und Zahlen besteht. Damit dieser Code nicht von Maschinen, sondern nur von Menschen ausgelesen werden kann, wird er als Bild angezeigt. (Auch das ist mittlerweile nicht mehr ganz sicher, weil Maschinen auch Bilder immer besser auslesen können, aber das ist in meinen Augen aktuell noch nicht das Problem der Shops). Menschen müssen ihn dann abtippen, und wenn das Formular gesendet wird, prüft der Shop, ob der abgetippte Code mit dem vorher generierten übereinstimmt.

Damit er das prüfen kann, muss er sich jedoch den vorher generierten Code „merken“. OXID macht das, indem der Code verschlüsselt, also über einen bestimmten Algorithmus in eine kryptische Zeichenkette umgewandelt, und dann dem Formular mitgegeben wird. Das Formular bekommt somit den Captcha-Code als Bild sowie den kompliziert verschlüsselten Code als Zeichenkette mitgegeben.

Schickt der Besucher nun das Formular ab, nimmt OXID den eingetippten Captcha-Code, verschlüsselt ihn auf demselben, komplizierten Weg und vergleicht ihn mit der kryptischen Zeichenkette, die das Formular ja noch als Information hat. Sind beide gleich, hat der Besucher den Code richtig abgetippt. Alles ist gut.

Die kryptische Zeichenkette, die nach der Verschlüsselung herauskommen muss, steht also so im Formular und ist somit auch von Maschinen auslesbar. Es handelt sich zwar um einen Einweg-Algorithmus, das heißt, der Code kann nicht zurück entschlüsselt werden. Es gibt aber inzwischen umfangreiche Tabellen, die den verschlüsselten und den entschlüsselten Wert als Paar enthalten, und mit denen somit anhand des verschlüsselten Werts der Ausgangswert, sprich der Captcha-Code, ermittelt werden kann.

Um das zu vermeiden, hat OXID den CaptchaKey eingeführt. Dieser ist geheim und wird zur Verschlüsselung des Captcha-Codes mit verwendet. Ein so verschlüsseltes Captcha wird quasi unentschlüsselbar, denn es fehlt hier immer die zweite Komponente, der geheime Captcha-Key. So ist die Theorie. Tja, wenn aber tausende Shops den Standard-Key verwenden, dann ist klar, dass dieser nicht lange geheim bleibt, und dass es im Grunde keine Kunst ist, für diese Zwecke eine eigene Schlüssel-Werte-Tabelle zu erstellen und auszulesen.

Sobald Sie nur ein einziges Zeichen Ihres geheimen Captcha-Keys ändern, ist das verschlüsselte Ergebnis völlig anders, und da es wie gesagt auch nicht einfach zurück entschlüsselt werden kann, wird es praktisch unknackbar. Auch Probieren ist keine Option, da OXID ja bei jedem Neuaufruf des Formulars auch wieder einen neuen Captcha-Code generiert.

kostenloses eBook SEO für OXID eShop

10 SEO Tipps für Ihren OXID eShop - kostenlos

Laden Sie sich Ihr kostenloses eBook herunter und optimieren Sie Ihren Shop ganz einfach selbst.

 

Thema: Recht & Sicher |