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

  • [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!


  • #2
    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

    Kommentar


    • #3
      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?
      Relax, you're doing fine.
      RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

      Kommentar


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

        Kommentar


        • #5
          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.
          Windows Server gehören NICHT ins Internet!

          Dildo? Dildo!

          Kommentar


          • #6
            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 .

            Kommentar


            • #7
              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..."

              Kommentar

              Lädt...
              X