Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] CSRF Fehler bei deaktiviertem Formularfeld?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Curcio
    hat ein Thema erstellt [Erledigt] CSRF Fehler bei deaktiviertem Formularfeld?.

    [Erledigt] CSRF Fehler bei deaktiviertem Formularfeld?

    Hallo,

    ich nutze CodeIgniter mit aktivierter CSRF protection. Wenn ich nach dem Submit das Formular deaktiviere und einen Loader anzeige (Request arbeitet einiges ab und dauert daher 1-2 Sekunden), wirft mir CodeIgniter einen Fehler aus.

    Basiert CSRF Schutz auch auf Basis der Formularelemente? Ich dachte bisher hier wird lediglich ein Cookie mit einem token gesetzt und ein hidden input field mit dem selbigen ausgerüstet und beim Controller im Anschluss lediglich geprüft ob diese Übereinstimmen.

    Vielen Dank!

  • erc
    antwortet
    Zitat von trollface Beitrag anzeigen
    Das hast du falsch verstanden. Er klickt auf Senden und deaktiviert danach
    die Felder.
    Nö... du hast ein Problem mit Javascript Event-Handling. Button klick -> click event -> Dom-Tree komplett bis nach oben durch -> default action -> submit des Formulare -> submit event -> event handler deaktivert Formularfelder -> default action -> Browser sendet Formular ->
    und damit landen wir wieder bei meiner eigentlichen Aussage "Deaktivierte Formularfelder werden nicht übertragen..."

    Einen Kommentar schreiben:


  • Curcio
    antwortet
    Hi,

    offensichtlich ist es so, dass wenn man das Formular via JS nach dem Absenden deaktiviert, dass der Browser dann auch die Post Daten nicht überträgt (getestet im Chrome & FF), das wusste ich bis dato auch noch nicht.

    Meine Annahme bezgl. des CSRF Schutzes lag darin begründet, dass es die typische Fehlermeldung des Frameworks dafür ist.

    Wenn ich nur das Suchfeld deaktiviere, passiert auch auf Controller Ebene einfach nicht, aber zumindest wird das CSRF Token übertragen, sodass es nicht zu der Fehlermeldung kommt. Dann lasse ich es jetzt einfach aktiviert .

    Einen Kommentar schreiben:


  • trollface
    antwortet
    Zitat von erc Beitrag anzeigen
    Deaktivierte Formularfelder werden nicht übertragen...
    Das hast du falsch verstanden. Er klickt auf Senden und deaktiviert danach
    die Felder. Vermutlich um mehrfaches Abschicken zu verhindern.

    Einen Kommentar schreiben:


  • erc
    antwortet
    Das kann weder mit CSRF Schutz noch ohne funktionieren. Deaktivierte Formularfelder werden nicht übertragen...

    Einen Kommentar schreiben:


  • VPh
    antwortet
    wirft mir CodeIgniter einen Fehler aus
    Was für einen? => Schonmal csrf-Schutz testweise deaktiviert um zu sehen was passiert?
    Den Request angesehen, ob alle Werte korrekt übertragen wurden?

    Einen Kommentar schreiben:


  • Curcio
    antwortet
    Hi,

    hier einmal ein Beispiel:

    View File:

    PHP-Code:
    <?php echo form_open(array('class' => 'searchform')); //Fügt CSRF hidden field hinzu ?>
    <input type="text" name="search" value="..." />
    <input type="submit" name="s" value="..." />
    </form>
    JS Code:

    Code:
    $('form.searchform').submit(function()
    {
      $('form.searchform input').attr('disabled', 'true');
    });
    Wenn das Formular nicht deaktiviert wird, funktioniert es. Ich wollte das gerne deaktivieren, damit die Nutzer sehen, dass etwas passiert und mich interessiert natürlich generell der Hintergrund, waurm es nicht funktioniert

    Einen Kommentar schreiben:

Lädt...
X