Frage

Ich habe nun schon seit einiger Zeit Flask benutzen, und ich genieße wirklich den Rahmen. Eine Sache, die ich nicht zu verstehen ist, dass in fast allen anderen Orten, die sie über die Speicherung der Sitzung auf dem Server und die Session-ID auf dem Client zu sprechen, die die Sitzung dann identifizieren würde. Doch nach Kolben verwendet wird, nicht, dass ich das Bedürfnis, dies zu tun. Auch das Speichern der Sitzung als Cookie auf dem Client dient kryptografisch meine Absicht und ganz sicher zu sein scheint. Das einzige, was zu sein Ich bin nicht in der Lage, die Sitzungsschlüssel für zB zu verschlüsseln:

session['life'] = 'the great one'

erscheint als

life='gfhjfkjdfa some encryption kj'

im Cookie auf dem Client gespeichert. Aber wie wäre, dass die Materie, wie es ist immer noch verschlüsselt. Ich bin sicher, dass die Menschen hier Dinge wissen viel besser als ich, so Wunsch, jemand zu klären bitte :-)

War es hilfreich?

Lösung

Auch wenn die Daten verschlüsselt sind, kann der Benutzer nach wie vor ihre Cookie in einen früheren Zustand zurückrollen (es sei denn, Sie starten kodieren einmalige IDs etc.)

z. Cookie sagt der Benutzer 100 Credits hat, Benutzer 100 Credits verbringt sie ein neues Cookie erhalten sagen, dass sie 0 Credits haben. Sie könnten dann ihre früheren Cookie wiederherstellen (mit 100 Credits).

Je nachdem, wie Sie das Cookie zu verschlüsseln, kann auch der Benutzer in der Lage sein Schlüssel zu löschen, einfügen falsche Daten usw. zu.

Andere Tipps

Wenn die Sitzungsdaten auf dem Server benötigt wird, macht es Sinn, es auf dem Server zu speichern. Es hält nach unten die Daten Masse hin und her von dem Client gesendet. Auch Cookies haben eine Obergrenze für die Menge an Daten, die sie speichern können.

Zusätzlich zu den Punkten bereits oben erwähnten

  1. Die Benutzer können Cookies deaktivieren ihre Browser-Einstellungen. Viele Anti-Virus-Scanner auch Scan und Flag-Cookies als ein Risiko, weil von denen, die auch in Cookies möglicherweise nicht auf dem Computer des Benutzers zu dürfen.

  2. Cookies können vom Benutzer selbst in der Mitte seiner Sitzung gelöscht werden. (In der Tat, ich habe versehentlich, dass der anderen Tag, wenn man meinen PC scannt das Tracking-Cookies aufgeführt ... und ich gerade geklickt „Clean“ und sie waren alle weg). Im Fall geschieht der Benutzer die Cookies zu löschen, wird der Benutzer Zustand verloren.

Wenn Sie Cookies verwenden, den gesamten Zustand zu verwalten, Sie sind immer abhängig von der Client-Umgebung und seine Einstellungen. Als solche müssen Sie wahrscheinlich atleast einen Fallback-Mechanismus, falls die Cookies gelöscht / deaktiviert usw., um für Ihre Anwendung richtig funktioniert.

Die SecureCookie Umsetzung Flask verwendet nicht verschlüsselt die Werte . Das einzige, was gewährleistet wird, ist, dass der Benutzer das Cookie nicht ändern kann, ohne das Geheimnis von der Anwendung verwendet zu kennen.

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