2010-11-27 14 views
0

Mögliche Duplizieren setzen:
Allowed characters in cookies= 's, Et-Zeichen und Doppelpunkte in einem Cookie

Ich brauche Werte in einem Cookie zu trennen. Also wählte ich &, um Name = Wert-Paare genau wie ich in einer URL zu trennen. Es kann auch mehrere Werte für einen Namen geben, also teile ich diese mit einem Doppelpunkt.

Meine Frage ist, ob das legal ist? Muss ich alles verschlüsseln? Die Werte können Doppelpunkte in ihnen enthalten, daher dachte ich, ich würde die Werte mit den URLs kodieren, um sicherzustellen, dass die Doppelpunkte in einem Wert nicht mit dem Trennzeichen kollidieren. Ich habe irgendwo gelesen, dass das Einschließen des gesamten Cookies mit Apostrophen auch funktioniert, macht das Sinn?

Wenn dies nicht legal ist, was ist der beste Weg, um meine mehreren Name/Wert-Paare zu speichern, die oft mehrere Werte pro Name haben (in einer bestimmten Reihenfolge, so kann ich nicht einfach den Namen/Werte duplizieren)?

+0

Gibt es einen Grund, warum Sie nicht ein Cookie pro Name/Wert-Paar verwenden? –

+0

Ich schätze 2 Gründe, aber keiner von beiden ist sehr wichtig ... also bin ich natürlich offen dafür, das zu ändern und das & s zu beseitigen. Erstens könnte es viele Name/Wert-Paare geben und ich möchte niemanden überschwemmen, der ihre Cookies überwacht und dort Probleme riskiert. Zweitens macht es einfach die Verarbeitung in JavaScript einfacher ... alles, was ich tun muss, ist $ .each (cookie.split ('&'), ... –

+0

Duplikate von [Erlaubte Zeichen in Cookies] (http: // stackoverflow .com/questions/1969232/allowed-characters-in-cookies) Ich konnte nicht besser antworten, als Bobince es bereits getan hat.Außerdem würde ich untersuchen, ob die Verwendung der serverseitigen Sitzung kein besserer Ansatz ist, als dies bei Cookies der Fall ist ziemlich begrenzt in der Menge der Informationen, die sie halten können. – BalusC

Antwort

0

Sie müssen die Zeichen, die in den Namen- und Wertteilen des Cookies enthalten sind, percent-escape, genau wie Sie es bereits tun sollten. Beispiel: = würde %3D werden, & würde %26 usw. werden. Erstellen Sie einfach die Zeichenfolge, die Sie für Ihren Cookie-Wert verwenden möchten, und führen Sie sie durch die URI-Escape-Funktion Ihrer Sprache/Ihres Frameworks aus. Wenn Ihr Framework eine Methode zum Setzen von Cookies hat und unterschiedliche Argumente für Name/Wert benötigt, sollte es für Sie tun.

+0

Mein Framework ist Spring 3/JEE 6 und sie nicht, nach dem JavaDoc ich bin Lese-, Flucht- oder Unescoekekse überhaupt –

+0

Dann müssen Sie tun, was ich vorgeschlagen habe und verwenden Sie eine URI-Escaping-Funktion für den Namen und Wert vor dem Senden an den Browser. – cdhowie