CSRF-Schutz: müssen wir erzeugen ein token für jede form?
Haben wir zum generieren eines token, der für jedes Formular in eine website? Ich meine, jeder-Zeit zu generieren, die verschiedene token für jeden gewünschten form? Wenn nicht, warum?
Das sieht aus wie eine Frage für security.stackexchange.com
InformationsquelleAutor Centurion | 2011-12-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Im Allgemeinen genügt es, nur ein token pro session, eine so genannte pro-Sitzungs-token:
Wenn Sie möchten, dass zur weiteren Verbesserung der Sicherheit, können Sie ein token pro Formular/einen URL (pro-form-token) zur Milderung der Auswirkungen, wenn ein token Lecks (e. g. XSS ), da ein Angreifer nur in der Lage sein, erfolgreich anzugreifen, dass bestimmte Formular/einen URL.
Aber mit pro-Anfrage-Token, ich. e. Token, die ändern sich mit jedem request, sondern schneidet die usability der website, denn es schränkt parallel durchsuchen:
Also ich empfehle dir, entweder eine pro-session-tokens oder pro-form-Token.
Stellen Sie sicher, dass der Inaktivität und der Absoluten session-Zeiten, die erneute Authentifizierung und neue token-generation. (Beispiel: 20 Minuten Inaktivität oder 4 Stunden absolut)
Die form der URL kann verwendet werden, zu identifizieren, die form. Wenn das nicht genügt, können Sie hinzufügen, andere identifizierende Informationen (e. g. versteckte input-Werte) oder, noch besser, verwenden Sie ein form-container zum speichern der versteckten input-Werte in , wird auch spoofing zu verhindern versteckten input-Werte.
Das ist nicht notwendig. Sollten Sie einen Algorithmus, generiert Token mit ausreichend Entropie, die machen das erraten einer gültigen token nicht undurchführbar. Regenerieren Sie das token wird nur ärgern den Benutzer.
Wenn Sie mit der richtigen XSS kann man in der Regel Leck token in der Website - Sie können AJAX/iframe GET-Aufruf in XSS zu Formular-Seite und veröffentlichen Sie das Formular mit Ihren soll-Werten.
InformationsquelleAutor Gumbo
Nein, Sie müssen nur generieren Sie einen token auf einer pro-Sitzung-basis.
Token sehr unwahrscheinlich sind, zugespielt werden, die versehentlich durch Benutzer und generiert ein token pro form macht die Dinge sehr kompliziert, wenn ein Benutzer die Seite besucht, in zwei verschiedenen tabs/Fenstern gleichzeitig.
Ja, das ist richtig.
InformationsquelleAutor Quentin