JSON in URL Hash - Eine schlechte oder gute Idee?

8

Ich habe ein Hilfsobjekt zum Speichern von JSON im URL-Hash erstellt. Siehe das Projekt hier auf GitHub :

Dies ist nützlich für persistente Seiteneinstellungen ohne einen Cookie. Funktioniert ziemlich gut und ich mag es.

Was sind Gedanken für und gegen diesen Ansatz? Ich habe gelesen, Sicherheit könnte sein. Ist es wirklich, wenn Sie json2.js oder das native JSON-Objekt in neueren Browsern verwenden?

    
Martin Drapeau 05.08.2011, 01:04
quelle

4 Antworten

7

rison scheint kompakter und effizienter zu sein. Zumal viele in JSON verwendete Zeichen nicht URI-sicher sind.

Außerdem ist es selten sinnvoll, vertrauliche Informationen (dh die meisten davon) in alles aufzunehmen, was zwischen Server und Client hin und her geht. Aus diesem Grund speichern die meisten Sitzungsschemata nur eine Sitzungs-ID in einem Cookie und nicht alle Informationen. In diesem Fall ist das Hinzufügen der ID zur URL nicht schwieriger als die Verwendung des Cookies. In der Tat war das der Standardmodus für PHP-Sitzungen in früheren Zeiten, als Cookies ein fortgeschrittenes Feature einiger Browser waren.

    
Javier 05.08.2011 01:12
quelle
3

Sie sollten beachten, dass die URL-Länge begrenzt ist und sich zwischen verschiedenen Browsern geändert hat: Ссылка

    
Naor 05.08.2011 01:10
quelle
1

In welchem ​​Teil der URL speichern Sie es? Die #fragment oder die ?query ?

Wenn es die Abfrage ist ... nicht .

Wie diese:

  • verbleiben in den Serverprotokollen
  • werden von Proxies erfasst,
  • und werden als Referrer an andere Websites gesendet, auf die Sie von Ihrer Seite aus verlinken können.
ZJR 05.08.2011 01:17
quelle
0

Wenn der Status in einem einzelnen Browser verwaltet werden soll und nicht mit anderen Benutzern oder Browsern geteilt werden soll, kann es besser sein, den Status in localStorage beizubehalten. Ein Framework wie amplify.store unterstützt die meisten Browser, die Ihnen begegnen werden (IE 5+, Firefox 2+, Safari 4+, Chrome, Opera 10.5+, iPhone 2+, Android 2+): < a href="http://amplifyjs.com/api/store/"> Ссылка

Es ist viel einfacher zu benutzen als ein Cookie, viel mächtiger und hat nicht die potentiellen Bedenken, die @ Javier erwähnt.

Wenn Sie möchten, dass der Status über Browser (und / oder Benutzer) verwaltet wird, ist die URL Ihre bessere Wahl, und in diesem Fall würde ich auch riskieren.

    
Oskar Austegard 22.09.2011 15:20
quelle

Tags und Links