Können Sie zuverlässig ein Cookie während der Server-Seite Verarbeitung eines Ajax (XHR) Rufaufbau oder löschen?

StackOverflow https://stackoverflow.com/questions/89579

Frage

Ich habe ein wenig getestet auf diesem selbst (Während der Server-Seite Verarbeitung eines DWR Rahmen Ajax-Request-Handler um genau zu sein) gemacht und es scheint, dass Sie erfolgreich Cookies manipulieren können, aber das geht gegen viel, dass ich auf Ajax gelesen best Practices und wie Browser interpretiert die Antwort von einem XmlHttpRequest. Hinweis: Ich habe getestet auf:

  • IE 6 und 7
  • Firefox 2 und 3
  • Safari

und in allen Fällen Standard-Cookie-Operationen auf dem HttpServletResponse Objekt während Ajax-Request Handling wurden von dem Browser richtig interpretiert, aber ich würde gerne wissen, ob es am beste Praxis die Cookie Manipulation an der Client-Seite zu schieben, oder wenn diese (viel Reiniger) Server-Seite Cookiebehandlung vertraut werden kann.

Ich würde Antworten begrüßen sowohl spezifisch für die DWR Framework und Ajax im Allgemeinen.

War es hilfreich?

Lösung

XMLHttpRequest verwendet immer die Verbindung Rahmen des Web-Browsers. Dies ist eine Voraussetzung für AJAX Programme korrekt zu arbeiten, wenn die Benutzer aus geloggt würden, wenn das XHR Objekt Zugang fehlt an den Cookie-Pool des Browsers.

Es ist theoretisch möglich, dass ein Web-Browser einfach Session-Cookies zu teilen, ohne den Browser-Verbindung Framework, aber das hat nie (meines Wissens) geschah in der Praxis. Auch die Flash-Plugin nutzt die Verbindungen des Web-Browsers.

Damit das Endergebnis ist, dass es sicher ist, Cookies über AJAX zu manipulieren. Nur beachten , dass der AJAX-Aufruf könnte nie passieren. Sie sind nicht Ereignisse garantiert, so zählen nicht auf sie.

Andere Tipps

Im Rahmen der DWR kann es nicht sein „sicher“.

Aus der Lektüre die DWR-Website heißt es:

  

Es ist wichtig, dass Sie die HTTP-Anforderung und Antwort als schreibgeschützt zu behandeln. Während HTTP-Header durch OK bekommen könnte, gibt es eine gute Chance, dass einige Browser sie ignorieren.

ich getroffen habe dies bedeuten, dass Einstellung Cookies oder Anfrage-Attribut ist ein No-No.
Zu sagen, dass ich Code habe, die Anforderung Attribute gesetzt hat (Code, den ich schrieb, bevor ich die Seite lesen) und es scheint gut zu funktionieren (abgesehen von dem Löschen von Cookies, die ich oben in meinem Kommentar erwähnt).

Manipulieren von Cookies auf der Client-Seite ist eher das Gegenteil von „best practice“. Und es sollte nicht notwendig sein, auch nicht. Httponly-Cookies wurden nicht umsonst eingeführt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top