Typolight / Contao CMS: Paypal IPN und der Referer Check
(Kommentare: 0)
Typolight (jetzt Contao) bietet als Sicherheitseinstellung an, bei jedem POST-Request einen Referer-Check durchzuführen. Nur wenn der Request von der eigenen Website kommt, wird er akzeptiert, sonst gibt eine Fehlermeldung und den HTTP-Status 400 (Bad Request):
Empty referer address!
The current host address (localhost) does not match the current referer host address ().
This error occurres if your browser does not send the referer host address. Many anonymizer tools, security suites or browser tools (e.g. Google toolbar) provide an option to hide the referer address to prevent user tracking. Try to find the culprit on your local computer and disable the feature.
For more information, visit the TYPOlight FAQ page or search the TYPOlight forum.
Sofern man diese Einstellung nicht im Backend deaktiviert ("Einstellungen/Referer-Prüfung deaktivieren") oder einen Hack einbaut, kann das Probleme geben z.B. bei der Rückkehr einer Paypal-Bezahlung und bei der IPN (Instant Payment Notification) von Paypal, denn dort wird kein Referer mitgesendet oder es ist eben ein falscher.
Kleiner Hack für einen solchen Fall: ich lasse Post-Requests immer durch, wenn der Request bestimmte Parameter hat. Dies kann ich steuern z.B. in der Datei system/config/initconfig.php, die im Initialisierungprozess aufgerufen wird (system/initialize.php). Dort kann ich bspw. einen bestimmten Parameter auf plausiblen Inhalt prüfen:
/** * Here you can add custom initialization routines that are executed * on every back end and front end request. */ if ($_POST && $_POST['item_name'] && ereg('some_typical_pattern', $_POST['item_name'])) { $GLOBALS['TL_CONFIG']['disableRefererCheck'] = true; }
"some_typical_pattern" muss entsprechend ersetzt werden durch einen regulären Ausdruck, der erkennt, dass es ein Item-Name (Artikel-Name des Einkaufs) von mir ist (ggf. weitere Parameter prüfen). Wenn dann "disableRefererCheck" auf true gesetzt wird, geht der Request durch. Damit erzeuge ich natürlich eine Sicherheitslücke, aber so kann ich mit Paypal und analog sofortueberweisung.de arbeiten, ohne das System bzgl. Referer-Prüfung komplett aufzumachen.
Kommentare
Einen Kommentar schreiben