Prüfpunkt software.sitzung.wechseltSitzung, Cookies und Zahlungsdaten
Was bedeutet es, wenn Ihr Server die Sitzung bei jedem Abruf neu vergibt?
Eine Sitzung erkennt Ihr Server an einem Cookie mit einer Kennung, die der Browser bei jedem Abruf zurückschickt. Normalerweise bleibt die Kennung gleich, solange der Besucher auf der Website ist. Die Prüfung schickt die Kennung aus der ersten Antwort beim zweiten Abruf zurück und meldet, wenn der Server dennoch eine neue vergibt. Der Bericht nennt den Namen des Cookies.
PHP warnt vor verlorenen Sitzungen im Mobilfunk

Die Anleitung von PHP warnt: Das Erneuern der Kennung kommt mit unruhigen Netzen schlecht zurecht, etwa Mobilfunk und WLAN. Der Server schickt die neue Kennung, die Antwort geht unterwegs verloren, und der Browser zeigt beim nächsten Abruf die alte vor. Dasselbe passiert, wenn mehrere Abrufe gleichzeitig laufen. Deshalb soll die alte Kennung noch eine Weile gelten: einige Sekunden im Kabelnetz, einige Minuten im Mobilfunk und im WLAN.
Wer mitten im Kauf abgemeldet wird, fängt von vorn an
Eine verlorene Sitzung trifft die Besucher, die schon weit sind. Wer gerade Adresse und Zahlungsart eingibt, hat mehrere Abrufe hinter sich; nach dem nächsten ist der Warenkorb leer oder das Konto verlangt eine neue Anmeldung. Manche füllen alles noch einmal aus, andere gehen. Trifft es nur einen Teil der Abrufe, etwa wenn einer von zwei Servern die Sitzung nicht findet, kommt auch Ihr eigener Testkauf oft durch, und der Fehler bleibt unentdeckt.
Fremde Kennungen abzulehnen ist richtig, die eigene muss gelten
OWASP, eine Stiftung für Anwendungssicherheit, rät: Eine Website nimmt nur Kennungen an, die sie selbst vergeben hat. Sonst kann jemand einem Besucher eine vorher bekannte Kennung unterschieben. PHP beherrscht das im strikten Modus (session.use_strict_mode), der in der Grundeinstellung aus ist. Der Browser bekommt dann bei einer unbekannten Kennung eine neue. Gilt das auch für die Kennung aus der vorigen Antwort, findet der Server seine eigene Sitzung nicht mehr, und Ihre Agentur sieht im Speicher für Sitzungen nach.
Zwei Ursachen mit unterschiedlichen Folgen
Vergibt der Server trotz vorgezeigter Kennung eine neue, findet er die Sitzung entweder nicht wieder oder er erneuert die Kennung absichtlich. Findet er sie nicht wieder, gehen Anmeldung und Warenkorb verloren. Das passiert etwa, wenn mehrere Server ohne gemeinsamen Speicher für Sitzungen hinter einem Verteiler stehen, wenn der Speicher für Sitzungen voll ist oder wenn ein Cookie mit falscher Domain oder falschem Pfad gesetzt wird. Erneuert er die Kennung absichtlich bei jedem Abruf, bleiben die Daten erhalten; dann stören die ständig neuen Cookies Zwischenspeicher und Abrufe, die der Browser gleichzeitig schickt. Welche Ursache vorliegt, zeigt erst ein Blick in die Konfiguration.
Gemessen werden zwei Abrufe der Startseite
Die Prüfung ruft Ihre Startseite auf und sucht in der Antwort ein Cookie, dessen Name nach einer Sitzung aussieht, etwa PHPSESSID, JSESSIONID oder ein Name mit sess, sid oder sitz. Beim zweiten Abruf schickt sie genau dieses Cookie zurück, wie es ein Browser tut. Setzt die zweite Antwort dasselbe Cookie mit einem anderen Wert, nennt der Bericht seinen Namen. Ob die Website für jeden neuen Besucher eine Sitzung anlegt, misst ein eigener Prüfpunkt.
Die Kennung beim Anmelden erneuern, sonst weiterführen
Erneuert wird die Kennung zu Recht, wenn sich die Rechte ändern: bei der Anmeldung und bei der Abmeldung. Das schützt davor, dass jemand eine vorher bekannte Kennung übernimmt. Zwischen diesen Momenten führt der Server die vorgezeigte Sitzung weiter, auch bei einer erneuerten Kennung. Stehen mehrere Server hinter einem Verteiler, brauchen sie einen gemeinsamen Speicher für Sitzungen, etwa eine Datenbank oder Redis, oder der Verteiler schickt jeden Besucher immer zum selben Server.
So gehen Sie es an
- Lassen Sie Ihre Agentur den Cookie-Namen aus dem Bericht zuordnen und prüfen, ob die Sitzung wiedergefunden wird oder absichtlich erneuert wird.
- Prüfen Sie Anmeldung und Warenkorb von Hand über mehrere Seiten: bleiben Sie angemeldet, bleibt der Warenkorb gefüllt?
- Wird die Kennung bei jedem Abruf absichtlich erneuert, stellt Ihre Agentur das auf Anmeldung und Abmeldung um.
- Laufen mehrere Server, sorgt Ihr Hoster für einen gemeinsamen Speicher der Sitzungen.
- Lassen Sie die Website neu messen. Der Bericht zeigt, ob die vorgezeigte Sitzung jetzt weitergeführt wird.
Tipps aus der Praxis
- Erneuern in Abständen ist in Ordnung: Die Anleitung von PHP nennt als Beispiel alle 15 Minuten für sensible Inhalte. Bei jedem Abruf ist es zu oft.
- Spielen Sie den Kaufweg einmal am Handy im Mobilfunk durch, am besten beim Wechsel ins WLAN. Dort reißen Verbindungen, die im Büro stabil bleiben.
- Ohne das Merkmal Domain geht ein Cookie nur an die Adresse zurück, die es gesetzt hat. Springt Ihre Website zwischen www und der Adresse ohne www, verliert der Besucher so seine Sitzung.
Weiter in der Cybersicherheit
- Was kostet ein Cyberangriff mein Unternehmen?Stillstand, verlorene Kunden, Benachrichtigungen, Sichtbarkeit in der Suche: was ein Angriff ein kleines Unternehmen in Österreich und Deutschland kostet.
- Was will mein Cyberversicherer von meiner Website sehen?Die Obliegenheiten der GDV-Musterbedingungen, der Risikofragebogen nach Umsatz und was davon an Ihrer Website von außen messbar ist. Mit Quellen.
- Welche HTTP-Methoden braucht Ihre Website?Eine Website kommt meist mit GET, HEAD, POST und OPTIONS aus. Die Prüfung fragt den Server, welche Methoden er annimmt, und nennt TRACE, PUT oder DELETE.
- Warum braucht eine Live-Verbindung auf einer https-Seite wss://?Chat, Live-Daten und Benachrichtigungen laufen oft über WebSockets. Auf einer verschlüsselten Seite gehört die Verbindung zu wss://, nicht zu ws://.
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.




