2017-09-10 1 views
0

Als Session-Speicher habe ich festgestellt, dass redis-rails die Sitzungs-ID im unverschlüsselten Format im Cookie speichert. Sollte Session-ID nicht als sichere Information behandelt werden und nicht unverschlüsselt in einem Cookie offengelegt werden, um Session-Hijacking-Versuche zu vereiteln?Ist es sicher, redis-rails als Session Store zu verwenden?

+0

Nein, sollten sie nicht, solange sie auf der Durchreise geschützt sind, die https zu decken neigt. – pvg

+0

Die Website verwendet https, aber trotzdem kann jemand weiterhin zufällige Zeichenfolgen als Sitzungs-ID verwenden, um die Sitzung einer anderen Person zu übernehmen. Können sie nicht? P.S Kann ich wissen, warum die Frage abgelehnt wird? – RajeshT

+0

Nein, sie können nicht, es sei denn, die Sitzungen sind vorhersehbar oder sie haben mehr Zeit als das Alter des Universums. Sitzungs-IDs müssen lediglich zufällig, unvorhersehbar und ausreichend groß sein. – pvg

Antwort

1

Nr

Die Sitzungs-ID-Cookie ist der einzige (anständig) Weg, um einen Client zu einer Sitzung zu verknüpfen. Der Kunde muss eine Art Anspruch haben, den er mit der Anfrage weitergeben kann, damit wir sie identifizieren können.

Dies gilt unabhängig davon, ob Sie CookieStore, Redis, ActiveRecord oder memcached verwenden.

Das Verschlüsseln der Sitzungskennung mit einem festen Salz oder ohne Salz würde absolut nichts anderes als Zeitverschwendung machen, da der Angreifer bei einem Man-in-the-Middle- oder XSS-Angriff sowieso Zugriff auf den Cookie hat.

Wenn Sie ein Salz verwendet haben, müssen Sie dies auch mit dem Benutzer verknüpfen. Jetzt haben Sie zwei Probleme statt einer.

Während Sie eine Reihe von neuen Ansätze wie Salzen mit dem Benutzer-Agent, ip oder alles andere, was Sie denken, dass Sie über den Client wissen können, die Sicherheitsvorteile sind wenige.

Wie @pvg sagte:

Session-IDs haben lediglich zufällig, unvorhersehbar und ausreichend groß sein.

Bedeutungsvolle Möglichkeiten, um die Sitzung zu schützen sind:

  • Verwenden https Man-in-the-Middle-Angriffe zu vereiteln.
  • Rufen Sie reset_session an, wenn Sie Benutzer ein- und ausloggen, um eine Sitzungsfixierung zu vermeiden.
  • Sanitize Benutzereingabe XSS zu vermeiden.
Verwandte Themen