PHP Können Cookies clientseitig gesetzt werden? Frage bzgl. Cookie-Authentifizierung

  • Ersteller Ersteller Novatast1c
  • Erstellt am Erstellt am
N

Novatast1c

Gast
-- hat sich erledigt -- bitte löschen --

-- hat sich erledigt -- bitte löschen --
 
Zuletzt bearbeitet:
Ja, Cookies können manipuliert werden, entweder per JavaScript (das der Nutzer auch selbst schreiben und ausführen kann, z.B. über die Entwicklerkonsole). Aber es gibt auch Möglichkeiten die Cookies direkt zu bearbeiten (steht z.B. auch hier auf CB im Artikel zum neuen Videoplayer auf Youtube den man über diesen Weg aktivieren kann).

Speicher in Cookies nicht den Nutzernamen/Passwort sondern nutze Session und speicher im Cookie nur die Session ID (was der Session-Mechanismus vom PHP automatisch macht) und merk dir den Nutzernamen in PHP in der Session (nach erfolgreicher Anmeldung). Dann kannst du über die Session abfragen ob der Nutzer erfolgreich angemeldet ist. Den Inhalt der Session kann der Client nicht manipulieren (außer du baust einen Fehler in deine Software)
 
Cookies sind Dateischnipsel auf der Festplatte des Users, die natürlich auch clientseitig manipuliert werden können, meist per JavaScript... aber am Ende tuts auch ein Texteditor.
Ausnahme: der Session Cookie. Auf der Clientseite kannst du da nur die Session ID umbasteln. Alle tatsächlichen Daten einer ID liegen auf dem Server.
 
Man kann Cookies auch serverseitig signieren. Änderungen durch die Client-Seite fallen dann sofort auf.
 
Man kann sich auch Nagelbretter zum Joggen unter die Füße schnallen.... Macht vielleicht zu Übungszwecken mal Sinn, aber eine praktische Anwendung sucht man vergebens.
 
Daaron schrieb:
Man kann sich auch Nagelbretter zum Joggen unter die Füße schnallen.... Macht vielleicht zu Übungszwecken mal Sinn, aber eine praktische Anwendung sucht man vergebens.

Wird in einigen Frameworks (z.B. Play Framework) so gehandhabt, um Client-Side sessions zu realisieren und läuft ohne weiteres zutun. Habe jetzt keine Lust den Blogeintrag rauszusuchen, aber mit Flickr lässt sich eine praktische Anwendung finden.
 
Zuletzt bearbeitet:
Die Probleme sind aber offensichtlich:
Erstens ackert man da gegen die gängige Praxis, zweitens muss man extrem strenge Daten-Disziplin walten lassen. Wenn du auf klassische Sessions setzt, dann kannst du da auch umfangreichere Daten lagen, z.B. die Adresse des Kunden. Cookies hingegen? Die werden bei jedem HTTP-Request mit geschleift. Das geht kräftig zu Lasten der Performance. Da schickst du am Ende 10kB an Cookie-Daten, bloß damit du 1kB JSON-Daten zurück bekommst...

Außerdem kriegst du so spätestens dann die Quittung, wenn du für deine Datenschutzerklärung mal einen Cookie Audit machen willst. Was stand noch einmal wo?
 
Ich sagte oben inhaltlich nur, dass man Cookie Tampering durch Signieren verhindern kann. Da der TS seinen Text sinnigerweise gelöscht hat, habe ich keine Ahnung, was dessen ursprüngliche Intention war. Aus dem Kontext der Antworten heraus hielt ich die Anmerkung trotzdem für eine angebrachte Ergänzung, nicht mehr, nicht weniger.

Client-Side sessions habe ich nur erwähnt, da du mit dem Nagelbrett-Kommentar ankamst. Das Für und Wider dieser Vorgehensweise ist auf einschlägigen Seiten ausführlich diskutiert und muss jetzt hier nicht nochmal aufgerollt werden, ich bin nur kein Fan von schwarz/weiß-Denken.
 
Der TE wollte einen Login über clientseitige Cookies implementieren... was nun einmal unnötig kompliziert und ineffizient ist.
 
Zurück
Oben