Kritischer Fehler in paypal_checkout

Alles rund ums PayPal im XT Commerce Shop
Antworten
bk_xtc
Beiträge: 17
Registriert: Mo 10. Jan 2011, 15:50

Kritischer Fehler in paypal_checkout

Beitrag von bk_xtc » Do 23. Aug 2012, 10:15

Hallo,

das extrem wichtige Feld "customers_email_address" wird nicht ausreichend geprüft.
Folgendes Szenario ist aufgetreten: Über PayPal Express wurde bei einem Kunden die E-Mail-Adresse nicht mit übergeben aber alle andere Daten schon.
Daher wurde ein Kundenaccount angelegt, wo die E-Mail-Adresse leer war.

Über die Methode check_customer wird der Kunde autom. eingeloggt über

Code: Alles auswählen

"select * from ".TABLE_CUSTOMERS." where customers_email_address = '".xtc_db_input($_SESSION['reshash']['EMAIL'])."' and account_type = '0'"
Auch hier kommt es vor, dass $_SESSION['reshash']['EMAIL'] leer ist. Jetzt sind diese Personen über den Account eingeloggt, die keine E-Mail-Adresse in der customers-Tabelle hat.

Todo-Vorschlag:
Methode check_customer(){
Hier sollte direkt zu Beginn geprüft werden, ob eine E-Mail-Adresse übergeben wurde:

Code: Alles auswählen

function check_customer(){
  if (!xtc_validate_email($_SESSION['reshash']['EMAIL'])) {
    return false;
  }
  ...
Alle weiteren Aktionen in der Methode (create_account, create_shipping_address, login_customer) dürfen ohne valide E-Mail-Adresse nicht erfolgen.

Man darf sich nicht darauf verlassen, dass die E-Mail-Adresse von PP übergeben wurde bzw. an der Stelle zuverlässig vorliegt.
Das ist kein theoretischer Fehler.

Beim Anlegen des Kunden-Accounts sollte die Mail-Adresse auch geprüft werden:

Antworten