Ankündigung

Einklappen
Keine Ankündigung bisher.

Bad Request Token für Form Element, wohin und wie weiterleiten?

Einklappen

Neue Werbung 2019

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

  • Bad Request Token für Form Element, wohin und wie weiterleiten?

    Hallo Community,

    bei einem Request wird ein Form Token aus dem http Request von "neu laden" mit dem vorher gespeicherten Token verglichen, ist alles gut, gehts weiter. Ist es nicht gut soll die Übermittlung der Daten aus dem Submit unterbunden werden.

    Bekomme es nicht hin mit:
    PHP-Code:
     header("Location: ...:"); 
    auf einem neue Skript. Es sendet wie auch immer wieder die Daten. Wie leite ich bei falschem Token richtig weiter wenn ich nicht nach jedem submit gleich ein header("Location: ...:") ausführen will.

    Gibt es da keine built in PHP Funktion?

    Gruß

  • #2
    Poste bitte ein Beispielcode, bei dem das Problem nachvollziehbar auftritt.

    Kommentar


    • #3
      PHP-Code:
        <?php   if(isset($_POST['username'],$_POST['password'])){  $uname $_POST['username'];  $pwd $_POST['password'];  if($uname == 'admin' && $pwd == 'ssd1'){   echo '<h3>Successfully logged in</h1>';  }  else{   echo 'Invalid Credentials';   exit();  } } ?> <?php  require_once 'token.php';  if(isset($_POST['token'])) {   $val=$_POST["token"]; }   if(isset($_POST['updatepost'])){    if(token::checkToken($val,$_COOKIE['SesT'])){     echo "<h2> valid request(csrf token does match) :  ".$_POST['updatepost']."</h2>";   }   else{     echo "<h2> Invalid request(csrf token does not match) :  ".$_POST['updatepost']."</h2>"//--> da sind die Header Informationen vom Submit schon wieder gesendet   } } ?>   <!DOCTYPE html> <html>  <head>   <title>Cross Site Request Forgery Protection</title>  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>  <link href="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">     <link href="style.css" rel="stylesheet" id="bootstrap-css">     <script src="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js"></script>  <script>    $(document).ready(function(){     var xhttp = new XMLHttpRequest();     xhttp.open("GET", "csrf_token_generator.php", true); // Token vom Server holen     xhttp.send();     xhttp.onreadystatechange = function() {       if (this.readyState == 4 && this.status == 200) { // DONE an succesfull         console.log(this.responseText);         document.getElementById("token_to_be_added").setAttribute('value', this.responseText) ; // DOM manipulieren und token in form schreiben       }     };  }); </script>  </head>  <body>   <div class="container">         <div id="login-row" class="row justify-content-center align-items-center">             <div id="login-column" class="col-md-6">                 <div class="box">                     <div class="shape1"></div>                     <div class="shape2"></div>                     <div class="shape3"></div>                     <div class="shape4"></div>                     <div class="shape5"></div>                     <div class="shape6"></div>                     <div class="shape7"></div>                     <div class="float">                       <form class="form" action="result.php" method="post">                             <div class="form-group">                                 <label for="username" class="text-white"><h4>Write Something<h4></label><br>                                 <input type="text" name="updatepost" class="form-control">                             </div>                             <div id="div1">                    <input type="hidden" name="token" value="" id="token_to_be_added"/>              </div>                             <div class="form-group">                                 <input type="submit"  class="btn btn-info btn-md" value="updatepost">                             </div>                       </form>                     </div>                 </div>             </div>         </div>     </div>   </body>  </html>

      Kommentar


      • #4
        Hallo, wie stelle ich hier Code eingerückt richtig dar, ohne das ich das händisch machen muß?? Keiner der Tags oben aus der Leiste funktioniert zuverlässig.

        BTW: Habe es gelöst mit $_POST=array();

        Kommentar


        • #5
          du hast schon den "richtigen" [ php ] - aber ohne Zeilenumbruch wird das nix ...
          "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

          Kommentar


          • #6
            Du musst einfach einen anderen Editor verwenden, ich und viele andere haben das Problem nicht.

            Kommentar


            • #7
              Ja, ich speicher demnächst in Notepad zwischen und kopiere dann hier rein.

              Kommentar

              Lädt...
              X