Sicherheit bei Zahlungsanbietern

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Sicherheit bei Zahlungsanbietern

    Hallo,

    ich nutze für das interne Guthabensystem Online-Zahlungsanbieter wie Micropayment, Moneybookers, PaySafeCard und PayPal. Als ich das System geschrieben habe, hatte ich anscheinend einen kleinen Denkfehler, der bisher noch keinen Schaden angerichtet hat. Letztendlich mache ich mir aktuell Gedanken über die Sicherheit der Transaktionen, denn die Url's, die die Zahlungsanbieter aufrufen, um eine Zahlung zu melden, ist Öffentlich zugänglich und so könnte natürlich ein "schlauer" User auf die Idee kommen, diese URL mit den passenden Parametern aufzurufen, ohne zu zahlen.

    Daher dachte ich an eine Rückprüfung an den Zahlungsanbieter, ob der Betrag auf dem Konto eingegangen ist. Problem ist aber, dass z.B. Micropayment eine Rückprüfung nur in der API anbietet. Ich möchte die API ungern nutzen, da ich dann auch entsprechen alle Funktionen nachempfinden muss.

    Wie kann man dies nun sinnvoll angehen?
  • Ich habe vor ein paar Jahren eine Payment API fürs WCF entwickelt - aber damals ziemlich teuer mit Exklusivrechten verkauft, daher nicht relevant ;)
    Schau dir dazu mal dieses Thema an: Payment-Anbieter/ Zahlungsdienstleister / Zahlungsanbieter - Erfahrungen?

    Hast du denn ein konkretes Beispiel, das die Sicherheit bemängelt?
    Bei Paypal kannst du dir zum Beispiel verschlüsselte Buttons erstellen lassen (auch automatisert)
    Und wenn du die API nutzt validierst du eben jede Antwort.

    Lg
  • Heyo

    also bei Paypal kannst du ganz einfach die "Automatische Zahlungsbestätigung" aktivieren.
    Dadurch wird dann ein von dir angegebenes Script aufgerufen, wenn eine Zahlung eingeht.
    Paypal sendet dann eine IPN an dieseses Script. Dein Script muss sich danach mit dem paypal Server verbinden, und diese IPN mitsenden.
    Dann bekommst du die Daten des Users (Überwiesenen Betrag, etc).

    Wenn jetzt nicht Paypal, sondern jmd. anders dieses Script aufruft, dann wird Paypal melden, dass die IPN falsch ist und die Zahlung nicht eingegangen ist.

    Das Script dafür kann ich dir gerne geben. Benutze das ganze auf ****
  • Hi,

    das PayPal eine ganz nette API anbietet, ist bekannt und somit für mich auch "sicher". Beispiel Micropayment: Dort wird der Pfad zum Auruf-Script (Nach Zahlung) hinterlegt und Micropayment ruft dieses auf und bekommt dadurch auch die OK/NOK-URL zur Weiterleitung. Empfohlen wird das Script für unbefugten Zugriff via .htaccess zu schützen. Das Problem ist aber, dass jeder halbwegs intelligente Programmierer weiß, wie man einen Zugriffschutz durch URL/IP-Erkennung umgehen kann. Micropayment gibt dazu drei URLs an, die zugelassen werden sollen.
  • Es gibt Mittel und Wege (auch wenn es nicht ganz Legal ist) ;)
    Der "Support" kann mir da auch nicht wirklich helfen, der verweist darauf, dass ich bei einer Gegenprüfung die API nutzen soll, was mir aber zu viel Aufwand ist (bei 4 möglichen Zahlungsarten).

    Das Problem was ich weiterhin sehe ist, dass ich die Parameter per GET übergebe - Wenn es wenigstens POST wäre ...
  • du meinst in den Logfiles? Ja, das stimmt, aber ansonsten macht es keinen wirklichen sicherheitsrelevanten Unterschied.

    Ich bin auch kein Fan von micropayment.
    Die haben getrennte Kundenkreise zwischen den verschiedenen Payment Lösungen - nicht für alle Payment Lösungen gibts API Zugang - und allgemein habe ich auch keinen Sandbox Modus für die Entwicklung gefunden.
  • Jup - Also werde ich auf Micropayment verzichten, denn Moneybookers, PayPal und paysafecard sind ganz gute Alternativen ... Wobei paysafecard auch nur eine direkte OK-URL hat, ohne eine Backend-Datei aufzurufen ... finde ich auch nicht wirklich Sicher.
  • So, da ich mich damit wieder beschäftige, um Rechnungen entweder per Überweisung oder via Zahlungsanbieter zahlen zu können: Ich vermisse bei MoneyBookers die Gegenprüfung, so wie sie bei PayPal vorhanden ist - oder habe ich etwas übersehen?
  • Moneybookers schickt dir die Daten an deine angegebene status_url.
    Diese sollte nur für bestimmte IP Ranges freigegeben sein. Schau dir mal das Kapitel zur md5 Signatur an - da ist bestimmt ein Salz enthalten.

    We further advise the Merchant to validate the transaction details in the status report by performing the following steps:
    (i) Merchant creates a pending transaction or order for X amount in their system.
    (ii) Merchant redirects the customer to the Moneybookers Payment Gateway where the customer completes the transaction.
    (iii) Moneybookers posts the confirmation for a transaction to the „status_url‟, which includes the 'mb_amount' parameter.
    (iv) The Merchant's application at 'status_url' first validates the parameters by calculating the md5sig (see Annex III – MD5 Signature) and if successful, it should compare the value from the confirmation post (amount parameter) to the one from the pending transaction/order in their system. Merchants may also wish to compare other parameters such as „transaction id‟ and „pay_from_email‟. Once everything is correct the Merchant can process the transaction in their system, crediting the money to their customer's account or dispatching the goods ordered.

    N.B. If Merchants wish to restrict the receipt of status reports by the posting IP address, they should do so via our FULL IP range. Moneybookers may from time to time change the IP address from which we post the status report. Please contact merchantservices@moneybookers.com for further information