wake-up-neo.com

Cookies vs. Sitzungen

Ich habe vor einigen Monaten mit PHP angefangen. Um ein Anmeldesystem für meine Website zu erstellen, lese ich über Cookies und Sitzungen und deren Unterschiede (Cookies werden im Browser des Benutzers und Sitzungen auf dem Server gespeichert). Ich habe damals Cookies bevorzugt (und wer mag Cookies nicht ?!) und sagte nur: "Wen kümmert es? Ich habe keinen guten Umgang damit, sie auf meinem Server zu speichern", also habe ich Cookies verwendet mein Bachelorabschlussprojekt. Nachdem ich jedoch den größten Teil meiner App erledigt hatte, habe ich gehört, dass Sitzungen für den speziellen Fall der Speicherung der Benutzer-ID angemessener sind. Ich dachte darüber nach, was ich sagen würde, wenn die Jury mich fragt, warum Sie Cookies anstelle von Sitzungen verwendet haben. Ich habe genau diesen Grund (dass ich nicht intern Informationen über den Benutzer speichern muss). Ist das genug als Grund ? oder es ist mehr als das?
Könnten Sie mir bitte die Vorteile/Nachteile der Verwendung von Cookies zur Aufbewahrung der Benutzer-ID mitteilen?

Vielen Dank für Sie alle in StackOverflow!

159
Nadjib Mami

Das Konzept speichert persistente Daten zwischen Seitenladungen für einen Webbesucher. Cookies speichern es direkt auf dem Client. Sitzungen verwenden ein Cookie als eine Art Schlüssel, um die Daten zu verknüpfen, die auf der Serverseite gespeichert sind.

Die Verwendung von Sitzungen wird bevorzugt, da die tatsächlichen Werte für den Client verborgen sind und Sie steuern, wann die Daten ablaufen und ungültig werden. Wenn dies alles auf Cookies beruhte, könnte ein Benutzer (oder Hacker) seine Cookie-Daten bearbeiten und dann Anfragen an Ihre Website senden.

Edit: Ich glaube nicht, dass die Verwendung von Cookies andere Vorteile bietet als die Einfachheit. Betrachten Sie es so ... Hat der Benutzer einen Grund, seine ID-Nummer zu kennen? Normalerweise würde ich nein sagen, der Benutzer braucht diese Informationen nicht. Die Herausgabe von Informationen sollte auf einer Wissensbasis beschränkt sein. Was passiert, wenn der Benutzer sein Cookie ändert, um eine andere ID zu erhalten, wie wird Ihre Anwendung darauf reagieren? Es ist ein Sicherheitsrisiko.

Bevor die Sitzungen allgegenwärtig waren, hatte ich im Grunde meine eigene Implementierung. Ich habe einen eindeutigen Cookie-Wert auf dem Client gespeichert und meine persistenten Daten zusammen mit diesem Cookie-Wert in der Datenbank gespeichert. Auf Seitenanfragen habe ich dann diese Werte abgeglichen und hatte meine persistenten Daten, ohne dass der Client die Kontrolle über das hatte.

187
Fosco

Grundideen, um zwischen diesen beiden zu unterscheiden.

Sitzung:

  1. IDU wird auf dem Server gespeichert (d. H. Serverseitig)
  2. Sicherer (wegen 1)
  3. Ablauf kann nicht festgelegt werden, Sitzungsvariablen verfallen, wenn Benutzer den Browser schließen. (Heutzutage wird es 24 Stunden lang standardmäßig in PHP gespeichert)

Kekse:

  1. IDU wird im Webbrowser gespeichert (d. H. Clientseitig)
  2. Nicht sehr sicher, da Hacker Ihre Informationen (wegen 1) erreichen und abrufen können.
  3. Ablauf kann eingestellt werden (siehe setcookies () für weitere Informationen)

Die Sitzung wird bevorzugt, wenn Sie kurzfristige Informationen/Werte speichern möchten, z. B. Variablen zum Berechnen, Messen, Abfragen usw.

Cookies werden bevorzugt, wenn Sie langfristige Informationen/Werte speichern möchten, wie z. B. das Konto des Benutzers (damit der Account auch beim Herunterfahren des Computers für 2 Tage angemeldet bleibt). Ich kann mir nicht viele Beispiele für Cookies vorstellen, da diese in den meisten Situationen nicht übernommen werden.

103
user743234
SESSIONS ENDS WHEN USER CLOSES THEIR BROWSER,

COOKIES END DEPENDING ON THE LIFETIME YOU SET FOR IT. SO THEY CAN LAST FOR YEARS

Dies ist der Hauptunterschied bei Ihrer Wahl,

Wenn Sie möchten, dass die ID für längere Zeit in Erinnerung bleibt, müssen Sie Cookies verwenden. Andernfalls, wenn Sie nur möchten, dass die Website den Benutzer nur für diesen Besuch erkennt, sind Sitzungen der Weg.

Sitzungen werden in einer Datei gespeichert, die von Ihrem PHP-Server erstellt wird. Um sich zu merken, welche Datei für welchen Benutzer bestimmt ist, setzt php auch ein Cookie im Browser des Benutzers, das diese Sitzungsdatei-ID enthält. Beim nächsten Besuch wird php diese Datei lesen und die Sitzung neu laden.

Jetzt löscht PHP standardmäßig alle Sitzungen und auch die Namenskonvention der Sitzung führt dazu, dass die Sitzung automatisch abläuft. Außerdem behalten Browser den Cookie mit der Sitzungs-ID nicht bei, wenn der Browser geschlossen oder der Verlauf gelöscht wird.

Es ist wichtig zu wissen, dass Browser heutzutage auch eine andere Art von Speicher-Engines wie LocalStorage, SessionStorage und andere Webdb-Engines unterstützen, die Javascript-Code zum Speichern von Daten auf Ihrem Computer verwenden kann, um sich an Sie zu erinnern. Wenn Sie beispielsweise die Javascript-Konsole in Facebook öffnen und "localStorage" eingeben, werden alle Variablen angezeigt, die Facebook verwendet, um Sie ohne Cookies zu erinnern.

39
Zalaboza

wenn Sie die #ID als Cookie speichern, um angemeldete Benutzer zu erkennen, zeigen Sie tatsächlich Daten an, die nicht mit ihnen in Verbindung stehen. Wenn ein Dritter versucht, zufällige IDs als Cookie-Daten in seinem Browser festzulegen, kann er den Server davon überzeugen, dass er ein Benutzer ist, während dies nicht der Fall ist. Das ist ein Mangel an Sicherheit.

Sie haben Cookies verwendet, und wie Sie sagten, haben Sie den Großteil des Projekts bereits abgeschlossen. Außerdem hat Cookie das Privileg, lange Zeit zu bleiben, während Sitzungen schneller enden. Sitzungen sind in diesem Fall also nicht geeignet. In der Realität verwenden viele bekannte und beliebte Websites und Dienste Cookies und Sie können für lange Zeit eingeloggt bleiben. Aber wie können Sie diese Methode verwenden, um einen sichereren Anmeldeprozess zu erstellen?

hier ist die Idee: Sie können uns bei der Verwendung von Cookies unterstützen: Wenn Sie anstelle von IDs Zufallsschlüssel verwenden, um eingeloggte Benutzer zu erkennen, leiten Sie Ihre primären Daten nicht an zufällige Benutzer weiter, und zweitens, wenn Sie die Zufälligkeit berücksichtigen Schlüssel groß genug, wird es für jeden schwieriger, einen Schlüssel zu erraten oder einen zufälligen Schlüssel zu erstellen. Zum Beispiel können Sie einen 40-Längen-Schlüssel wie folgt im Browser des Benutzers speichern: "KUYTYRFU7987gJHFJ543JHBJHCF5645UYTUYJH54657jguthfn" und es ist weniger wahrscheinlich, dass jemand den genauen Schlüssel erstellt und so tut, als würde er jemand anderes sein.

18
Makan Tayebi

Eigentlich sind Sitzung und Cookies nicht immer getrennte Dinge. Häufig, aber nicht immer, verwendet die Sitzung Cookies.

In diesen anderen Fragen gibt es einige gute Antworten auf Ihre Frage. Da es sich bei Ihrer Frage speziell um das Speichern der IDU (oder ID) des Benutzers handelt, glaube ich nicht, dass es sich um ein Duplikat dieser anderen Fragen handelt, aber die Antworten sollten Ihnen helfen.

Cookies gegen Sitzung

VS-VS-Cookies zwischenspeichern?

Was ist der Unterschied zwischen einer Sitzung und einem Cookie?

12
DOK

Ich persönlich verwende sowohl Cookies als auch Sitzungen.

Cookies, die nur verwendet werden, wenn der Benutzer auf das Kontrollkästchen "Remember me" klickt. und auch Cookies sind verschlüsselt und nur Daten entschlüsseln auf dem Server. Wenn jemand versucht, Cookies zu bearbeiten, kann unser Entschlüsseler sie erkennen und die Anfrage ablehnen.

Ich habe so viele Websites gesehen, auf denen Anmeldeinformationen in Cookies gespeichert sind. Jeder kann einfach die ID und den Benutzernamen des Benutzers in Cookies so ändern, dass auf alle Konten zugreift.

Vielen Dank,

7

Sitzung und Cookie sind nicht gleich.

In einer Sitzung werden die Informationen von den Webseiten gespeichert. Normalerweise haben Webseiten keine Erinnerungen, um diese Informationen zu speichern. Aber mit können wir die notwendigen Informationen speichern.

Mit Cookie werden jedoch die Benutzer identifiziert. Mit einem Cookie können wir die Daten speichern. Es ist ein kleiner Teil der Daten, die im Webbrowser des Benutzers gespeichert werden. Wann immer Benutzer beim nächsten Mal im Browser surfen, senden Sie die Cookie-Dateninformationen an den Server zurück, um die vorherigen Aktivitäten abzurufen.

Credits: Sitzung und Cookie

2
user3824494

Bei Sitzungen können Sie einzelne Informationen wie bei Cookies speichern. Die Daten werden jedoch auf dem Server und nicht auf dem Client gespeichert.

1
Fahad Uddin

Eine Sitzung ist eine Gruppe von Informationen auf dem Server, die den Cookie-Informationen zugeordnet sind. Wenn Sie PHP verwenden, können Sie die Sitzung überprüfen. _ Pfadpfad speichern und tatsächlich "siehe Sitzungen" . Ein Cookie ist ein Ausschnitt aus Daten, die an Clients gesendet und von diesen zurückgegeben werden. Cookies werden häufig zur Vereinfachung von Sitzungen verwendet, da sie dem Server mitteilen, welcher Client welche Sitzung behandelt hat. Es gibt andere Möglichkeiten, dies zu tun (Abfragezeichenfolge-Magie usw.), aber Cookies sind dafür wahrscheinlich am häufigsten.

0
Megersa

Ich wähle Session aus. Zuerst ist Session sicherer als Cookies, Cookies sind Client-Site-Daten und Session-Server-Site-Daten . Cookies werden zur Identifizierung eines Benutzers verwendet, da es sich um kleine Code-Teile handelt, die in meinen Server eingebettet sind mit Benutzer-Computerbrowser. Auf der anderen Seite hilft Session Ihnen dabei, Ihre Identität zu sichern, weil der Webserver nicht weiß, wer Sie sind, da die HTTP-Adresse den Status 192.168.0.1 in 765487cf34ert8ded ändert ... oder etwas andere Zahlen mithilfe von GET und POST. Methoden. Session speichert Daten des Benutzers in einer eindeutigen ID-Sitzung, die nicht einmal von Benutzer-ID abgeglichen werden können. In der Sitzung werden Einzelbenutzerinformationen auf allen Seiten einer Anwendung gespeichert. Cookies sind abgelaufen. Sie werden mit Hilfe von setcookies () gesetzt. Sitzungsablauf ist nicht festgelegt. Der Browser läuft ab, wenn der Browser deaktiviert wird.

0

Wie andere schon sagten, Sessions sind klug und haben den Vorteil, dass sie die Informationen vor dem Kunden verbergen.

Cookie hat jedoch immer noch einen Vorteil. Sie können über Javascript auf Ihre Cookies zugreifen (z. B. ngCookies ). Mit PHP Sitzung können Sie außerhalb des PHP Skripts nicht darauf zugreifen.

0
Kamalakannan J