Können wir eine Website hacken, die nur den Benutzernamen als Sitzungsvariable speichert?

8

Ich habe meine Website entwickelt, die überprüft, ob der Benutzer registriert ist und eine Sitzungsvariable mit dem Benutzernamen erstellt. Es ist alles, was als Sitzungsvariable gespeichert wird. Wenn ich meine Seiten schützen möchte (damit nur registrierte Benutzer sie sehen können), überprüfe ich, ob die Sitzungsvariable gesetzt ist. Ist das sicher? Oder können Sie eine sicherere Methode geben?

    
Abdulsattar Mohammed 25.01.2009, 12:37
quelle

2 Antworten

11

Im Allgemeinen ist die Sitzung serverseitig, aber wenn ich irgendwie die Sitzungs-ID erhalte, kann ich sie einfach entführen.

Ich würde empfehlen, zumindest die IP und vielleicht auch den User-Agent zu speichern, und im Falle einer Nichtübereinstimmung die Sitzung ungültig zu machen.

    
Michael Stum 25.01.2009, 12:58
quelle
1

Im Prinzip können Sie alles, was Sie wollen, in der Sitzung speichern. Die einzigen Vorbehalte sind:

  • Wenn Sie keine gesicherten Verbindungen (wie SSL) verwenden, kann die sessionId geschnüffelt und entführt werden. Dies ist nicht von Bedeutung, da der Benutzername und der Pass auch entführt werden können und Sie "Man-in-the-Middle" -Angriffen ausgesetzt sind. Im Grunde ist Ihr System in Ordnung und bietet geringe Sicherheit ohne SSL.
  • In den Artikeln über PHP erwähnen sie einige Bedenken bezüglich Shared Hosting und Session Hijacking. Ich bin mir nicht sicher, ob das stimmt, also habe ich eine Frage hier gestellt. Bearbeiten: Dieses Problem scheint real zu sein. Sie müssen daher eine der Problemumgehungen zum Speichern einer Sitzung (z. B. Datenbank) verwenden, wenn Sie PHP verwenden.

Im Allgemeinen beziehen sich die meisten der erwähnten Sicherheitsbedenken (einschließlich XSS-Attacken) jedoch nicht auf das Speichern von Daten in der Sitzung, sondern auf allgemeine Sicherheitsbedenken. Das Speichern von Benutzer-ID - oder einer verschlüsselten Form desselben - in Session ist im Allgemeinen ziemlich sicher.

Am wichtigsten: Wenn Sie Ihren eigenen Algorithmus verwenden würden, um einen zufälligen Cookie-Code für jeden Benutzer zu generieren, hätte das ohne Zweifel mehr Sicherheitsmängel (kein Experte) als die Algorithmen zur Generierung von Session-Schlüsseln von PHP , ASP.NET, Rails, was auch immer ...

Ich könnte ein passenderes Bruce-Schneier-Zitat finden, aber dieses wird tun: "Niemand kann das Vertrauen, das RSA nach 20 Jahren kryptanalytischer Überprüfung bietet, verdoppeln."

    
Dan Rosenstark 28.01.2009 14:58
quelle

Tags und Links