turk porno porno escort rokettube
Ergebnis 1 bis 3 von 3

Thema: CSRF Tokens

  1. #1
    Erfahrener Benutzer Avatar von ice-breaker
    Registriert seit
    29.03.2008
    Ort
    Steinbach/Taunus
    Beiträge
    1.862
    Thanks
    0
    Thanked 9 Times in 5 Posts

    Standard CSRF Tokens

    Hi,
    ich wollte mir heute mal ein paar Gedanken zu einem Thema einholen, mit dem wir uns eigentlich kaum noch beschäftigen: CSRF

    Im Zend Framework ist das Problem von CSRF ziemlich einfach zu beheben, immerhin hat Zend_Form (oder Zend\Form für alle ZF2-ler) schon ein fertiges Form-Element als Schutz dagegen. Das Problem dieses Elements sind aber die mit einer Lebenseit von nur einem Hop ausgestatten CSRF Tokens, Tabbed Browsing ist also unmöglich. Aus dem Grunde habe ich immer meine eigenen CSRF Tokens genutzt, die standardmäßig 5 Minuten gültig sind. Ein klein wenig unsicherer, aber ein großer Schritt für die Usability. Da ich an einem aktuellen Projekt die ganze Interaktion RESTful baue, also nur noch JavaScript Webservice-Schnittstellen für eingeloggte User aufgerufen werden, wird schnell klar, dass dieser Ansatz dort nicht mehr funktioniert. Schaut man sich an, wie prominente RESTful JavaScript-Frameworks dies lösen (z.B. backbone.js) fällt auf, dass diese einen (!) CSRF-Token beim Laden der Seite erstellen und dieser dann solange gültig bleibt, bis eine zweite Seite aufgerufen wird (also bei einer One-Page RESTful Seite nie).
    Ich dachte mir, dass das ein interessanter Ansatz ist und habe mal geschaut, was es noch so für "Best Practices" gibt. Aufgefallen ist mir da das OWASP CSRF Cheat Sheet in dem ein CSRF Token pro Session, also auch gültig für mehrere Tabs, als ausreichend sicher definiert wird.

    Also wenn ich darüber nachdenke, sollte es für 99% der Operationen sicher genug sein und für die wirklich hochkritischen Operationen greift man auf das sehr restriktive Modell von Zend_Form zurück. Der große Vorteil ist eben, dass es ein erheblicher Fortschritt in Richtung Usability ist, da es nie mehr den Fall gibt, dass man dem Nutzer eine Fehlermeldung bei abgelaufenem CSRF Token präsentieren muss, da der CSRF Token an die Session gekoppelt ist. Die Session wird also "vor" dem CSRF Token auslaufen, und das sich ein Nutzer nach langer Inaktivität wieder einloggen muss, ist dieser gewöhnt.

    Wie seht ihr das? Bezogen einfach rein auf die Sicherheit und nicht auf RESTful gemünzt.
    "Die Wahrheit entgeht dem, der nicht mit beiden Augen sieht." -Orici

  2. #2
    Erfahrener Benutzer
    Registriert seit
    10.02.2011
    Beiträge
    130
    Thanks
    0
    Thanked 3 Times in 1 Post

    Standard

    Zitat Zitat von ice-breaker Beitrag anzeigen
    Tabbed Browsing ist also unmöglich
    Sehe ich auch so, obwohl in der Zend Referenz steht

    Der Name des Hash Elements sollte einmalig sein. Wir emphehlen
    die Verwendung der salt Option für das Element- damit zwei Hashes mit
    dem gleichen Namen und unterschiedlichen Salts nicht kollidieren:
    Habe entsprechendes (was das umsetzen würde) in

    • Zend_Session_Namespace
    • Zend_Form_Element_Hash
    • Zend_Validate_Identical

    usw...

    nicht gefunden...

  3. #3
    Erfahrener Benutzer Avatar von ice-breaker
    Registriert seit
    29.03.2008
    Ort
    Steinbach/Taunus
    Beiträge
    1.862
    Thanks
    0
    Thanked 9 Times in 5 Posts

    Standard

    Du kannst Zend_Form_Element_Hash einen Identifier mitgeben, auf dessen Basis der Hash erzeugt wird. Nimmst du verschiedene Identifier, so können die Hashes theoretisch nicht kollidieren. Das löst aber nur das Problem von 2 verschiedenen Formularen, die per Zufall den gleichen CSRF-Token generieren. Die Lebenszeit eines Tokens bleibt weiterhin nur 1 Hop.


    Nach langem hin und her habe ich entschieden, dass das OWASP mit deren Aussage Recht hat. 1 CSRF-Token pro Session ist ausreichend, wenn man ihn nicht extra irgendwo leaked (Get-Parameter).
    "Die Wahrheit entgeht dem, der nicht mit beiden Augen sieht." -Orici

Ähnliche Themen

  1. CSRF erneuern
    Von Yanko im Forum Formulare
    Antworten: 5
    Letzter Beitrag: 01.03.2011, 15:58
  2. Antworten: 10
    Letzter Beitrag: 28.08.2010, 14:41
  3. Zend_Form Dojo und Csrf
    Von disa87 im Forum Formulare
    Antworten: 17
    Letzter Beitrag: 10.03.2010, 22:39
  4. Controller mit CSRF Form testen
    Von ulffel im Forum Testing & Deployment
    Antworten: 1
    Letzter Beitrag: 27.11.2009, 12:54
  5. CSRF Protection Implementierung
    Von Octavian im Forum Auth
    Antworten: 10
    Letzter Beitrag: 23.04.2008, 10:42

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •