Zum Inhalt springen
EUID Prüfservice & Prüfsiegel, Startseite
Website prüfen lassen

Prüfpunkt software.kasse.kartendatenSitzung, Cookies und Zahlungsdaten

Wo sollen Ihre Kunden ihre Kartennummer eingeben?

Wer Kartenzahlung anbietet, hält die Sicherheitsregeln der Kartenorganisationen ein, den Payment Card Industry Data Security Standard, kurz PCI DSS. Wie viel davon auf Ihre Website fällt, hängt davon ab, wo die Kartennummer eingegeben wird. Die Prüfung sucht auf jeder Seite Eingabefelder für Kartendaten, die im eigenen Formular der Seite stehen und nicht im Formular eines Zahlungsanbieters.

Auch ohne Umweg über Ihren Server bleibt das Risiko höher

Oft heißt es: Die Nummer geht doch direkt an den Anbieter. Der PCI Security Standards Council, der das Regelwerk herausgibt, sortiert Zahlungswege in seiner Übersicht für kleine Händler nach Risiko. Baut die eigene Website die Zahlungsseite und schickt der Browser die Karte direkt zum Anbieter, steht dort „Higher“; die Website bestimmt dann, wie die Karte erfasst wird. Bei Weiterleitung oder Rahmen des Anbieters steht „Lower“. In den meisten Fällen nennt der Council die vollständige Auslagerung die sicherste Wahl.

Der Kundendienst kommt ohne die volle Kartennummer aus

Stripe nennt, was Sie nach einer Zahlung speichern dürfen: Kartentyp, die letzten vier Ziffern und das Ablaufdatum. Diese Angaben unterliegen laut Stripe nicht der PCI-Konformität. Das reicht für die Frage, mit welcher Karte jemand bezahlt hat. Folgezahlungen und Erstattungen laufen laut Council über eine Ersatzkennung, ein Token, das für Täter keinen Wert hat; die Kartendaten liegen dann bei Ihrem Zahlungsanbieter.

Auch bei ausgelagerter Zahlung bleibt Ihre Website ein Ziel

Der Council beschreibt, wie das abläuft: Täter nutzen eine Schwachstelle oder schwache Zugänge Ihrer Website und ändern, wie der Kunde zum Zahlungsanbieter gelangt, etwa über eine falsche Zahlungsseite. Der Kunde gibt seine Karte dann bei den Tätern ein. Das Formular des Anbieters senkt Ihr Risiko; Updates und sichere Zugänge für den Rest der Website bleiben nötig.

Die Kartennummer im eigenen Formular bindet Website und Server an PCI DSS

Steht das Feld im eigenen Formular, läuft die Kartennummer durch den Code Ihrer Website und meist über Ihren Server. Dann gelten die Anforderungen des PCI DSS für Website, Server und Hosting; Stripe nennt dafür mehr als 300 Sicherheitskontrollen, mitunter mit jährlicher Bewertung durch externe Prüfer. Ein eingeschleustes Skript auf der Seite kann jede eingegebene Nummer mitlesen, bevor sie abgeschickt wird.

Gemessen werden Eingabefelder im Dokument der Seite

Die Prüfung lädt jede Seite im Browser und zählt Eingabefelder, die nicht versteckt sind und an ihren Merkmalen als Kartenfeld erkennbar sind: autocomplete mit cc- (etwa cc-number), ein Name mit kartennummer, kreditkarte, cardnumber, card_number oder card-number, genau der Name karte, eine id mit cardnumber oder kartennummer oder ein Platzhalter mit Kartennummer oder card number. Karte allein zählt nur als ganzer Name, weil das Wort auf vielen Websites eine Landkarte meint. Felder im Rahmen eines Zahlungsanbieters gehören zu dessen Seite und zählen nicht. Der Bericht nennt die Zahl der Felder und zeigt bis zu drei davon im Quelltext.

Das Formular des Zahlungsanbieters einbinden

Ihre Agentur ersetzt die eigenen Felder durch das Formular des Zahlungsanbieters: eingebettet als Rahmen auf Ihrer Seite oder als Weiterleitung auf dessen Kassenseite. Die Kartennummer geht dann direkt an den Anbieter, Ihre Website bekommt nur eine Kennung für die Zahlung zurück. Ihre Pflichten nach PCI DSS sinken damit deutlich; welcher Fragebogen zur Selbstbewertung gilt, klärt Ihre Agentur mit dem Zahlungsanbieter.

Beispiele

Kartenfelder im eigenen Formular und im Rahmen des Anbieters

Nicht erfüllt
<form action="/kasse" method="post">
  <input name="kartennummer" autocomplete="cc-number">
  <input name="ablauf" autocomplete="cc-exp">
</form>
Erfüllt
<form id="zahlung">
  <div id="zahlungsrahmen"></div>
</form>
<script src="https://js.zahlungsanbieter.example/v3/"></script>

Das Skript des Anbieters setzt seine Felder als Rahmen in den Platzhalter. Ihre Seite sieht die Kartennummer nie und bekommt nur eine Kennung für die Zahlung zurück.

So gehen Sie es an

  1. Lassen Sie Ihre Agentur die Felder aus dem Bericht ansehen: wohin schickt das Formular die Kartennummer?
  2. Sie bindet stattdessen das Formular Ihres Zahlungsanbieters ein, als Rahmen oder als Weiterleitung.
  3. Bis zur Umstellung klärt sie mit dem Zahlungsanbieter, welche Pflichten nach PCI DSS für Ihre Website gelten.
  4. Speichert Ihr Server Kartennummern, etwa in Protokollen, lässt sie sie löschen.
  5. Lassen Sie die Website neu messen. Der Bericht zeigt, ob noch ein Kartenfeld im eigenen Formular steht.

Tipps aus der Praxis

  • Kommt eine Kartennummer per Mail, empfiehlt der Council: Zahlung abwickeln, Mail sofort löschen, dem Absender einen anderen Weg nennen. Antworten Sie ohne den Originaltext, sonst liegt die Nummer auch in Ihren gesendeten Mails.
  • Fragen Sie Ihren Zahlungsanbieter nach dem Nachweis seiner eigenen PCI-Konformität. Der Council hat dafür eine Fragenliste für Dienstleister veröffentlicht.
  • Nehmen Sie Statistik-, Werbe- und Chat-Skripte von der Kassenseite, soweit es geht. MDN rät, fremde Inhalte aus Zahlungsformularen zu entfernen.
  • Fragen Sie bei Abos nach, wie Folgezahlungen ohne gespeicherten Sicherheitscode der Karte laufen.

Mehr zu diesem Thema

Weiter in der Cybersicherheit

Dieser Prüfpunkt gehört zur Cybersicherheit, Unterthema Sitzung, Cookies und Zahlungsdaten. Gemessen wird er im Prüfbereich Aktualität. Was die Prüfung insgesamt leistet, zeigt die Leistungsseite; wie ein Ergebnis zustande kommt, erklärt das Prüfverfahren.

  • Siegel Digitale Barrierefreiheit
  • Siegel Daten & Recht
  • Siegel Technische Qualität
  • Siegel Digital Excellence
  • Siegel Cyberversicherung

Geprüft. Für eine bessere digitale Zukunft.euid.com