Sicherheitslücke bei OSCommerce
Sehr viele Shopbetreiber setzen die freie Shoplösung OSCommerce ein. Unter den angebotenen Bezahlarten findet sich auch oft die Bezahlung per Keditkarte. Weil die Anforderungen dafür sehr hoch sind, setzen viele Shopbetreiber auf externe zertifizierte ASP-Partner (ipayment, DirectPOS…).
Wird die Zahlungsweise ausgewählt um die Transaktion fortzuführen, werden die Daten vom Browser des Kunden direkt zum ASP-Partner umgeleitet und dort verarbeitet. Nach der Transaktion liefert der Partner eine “Quittung” zurück an das Shopsystem. Diese nimmt den Weg über den Browser des Kunden. Und damit sind der Manipulation Tür und Tür geöffnet.
Systeme wie jenes von ipayment lassen sich auf vielfältige Weise in den eigenen Webshop einbinden. Dazu gehört auch eine recht sichere Methode mit einem “Security-Hash”, der die Transaktionsdaten zusätzlich verschlüsselt. Leider setzen viele Shopbetreiber diese sicheren Verfahren nicht ein, da sie einen höheren Integrationsaufwand erzeugen.
Werden über den Shop MP3s oder Softwareprodukte direkt per Download vertrieben, kann dies zum unberechtigten Einkauf genutzt werden. Speziell für ipayment liegt ein Patch zum Download bereit.
Besteht Handlungsbedarf? Um diese Frage beantworten zu können, müssen Sie erst einmal prüfen, welche Zahlungsarten in Ihrem Shop angeboten werden, ob Sie OSCommerce oder eines der vielen Derivate einsetzen und ob der Patch bei Ihnen schon eingespielt ist.
So können Sie direkt prüfen, ob der Patch bei Ihrem System eingespielt wurde…
Öffnen Sie die Datei checkout_confirmation.php und suchen Sie die Zeichenfolge if ($_POST[’conditions’] == false) . Sollte diese nicht gefunden werden oder auskommentiert sein, ist der Patch möglicherweise installiert. Suchen Sie dann nach if ($_REQUEST[’conditions’] == false) . Erhalten Sie keinen Treffer, deutet dies darauf hin, daß der Patch nicht installiert ist.
Der folgende Code muss in Zeile 202 (ff) enthalten sein, wenn der Patch installiert ist:
if (isset($_GET[’payment_error’]) && is_object(${$_GET[’payment_error’]}) && ($error = ${$_GET[’payment_error’]}->get_error()))
$smarty->assign(’error’, $error[’title’].’<br />’.htmlspecialchars($error[’error’]));
Benötigen Sie Unterstützung? Wir helfen Ihnen gerne. Nutzen Sie unser Kontaktformular oder rufen Sie uns an unter +49 2243 912976 (24/24).
Vorsicht! Die Kartenherausgeber haben sich in einem verbindlichen Standard auf die Verarbeitung und Speicherung von Kreditkarteninformationen geeinigt. Der Payment Card Industry Data Security Standard (PCI DSS) schreibt in 12 Regeln vor, wie Sie mit den sensiblen Daten umgehen müssen.
Einige ASP-ePayment-Lösungen liefern sehr wohl die Kreditkartennummern an den Shop zurück. Damit fallen diese Shops unter PCI DSS. Aber längst nicht alle hielten einer Prüfung auf Einhaltung dieser Regelungen stand.