token setzen für alle Inhalte am ende der php Laufzeit

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

  • token setzen für alle Inhalte am ende der php Laufzeit

    Hallo,
    ich möchte ein Token vergeben, der bei jedem Absenden eines Formular erneuert wird und zwar nach Ausgabe der Inhalte z. B. so:

    PHP-Code:
    if(!isset($_SESSION['forms_token'])) {
                                    
                   
    $random $this->randomString();
                    
    //Build the token
                    
    $token $results['form_pass'] . $_SERVER['HTTP_USER_AGENT'] . $random;
                    
    $_SESSION['forms_token'] = $this->hashData($token);
         }
             
        
    register_shutdown_function(array($this'callRegisteredShutdown'));

    public function 
    callRegisteredShutdown() {

         unset(
    $_SESSION['forms_token']);
          
        
            
            
        } 
    nun wird aber die SESSION Token nach der Ausgabe geändert und der Check
    PHP-Code:
    if($_SESSION['forms_token'] != $_GET['forms_token']) {
      
      unset(
    $_SESSION['forms_token']);
      
      die(
    'no permission');
      
      } 
    funktioniert nicht mehr. Hat jemand eine Idee wie man das anstellen kann?

  • #2
    Ich habe das mal so gelöst. Action folgt auf das Absenden eines Formulars. Frage: macht das sichheitstechnisch Sinn?

    PHP-Code:
    public function __construct($location) {

     if(!isset(
    $_SESSION['forms_token'], $_GET['forms_token'])) {
        
    $random $this->randomString();
                    
    //Build the token
                    
    $token =  $_SERVER['HTTP_USER_AGENT'] . $random;
                    
                
    $_SESSION['forms_token'] = $this->hashData($token);
                
                
    self::$token_for_forms  "&forms_token=".$_SESSION['forms_token'];
                
        }

    }

    public function 
    actions ($location) {

     if(!isset(
    $_SESSION['forms_token'], $_GET['forms_token']) AND $_SESSION['forms_token'] != $_GET['forms_token']) {
      
      unset(
    $_SESSION['forms_token']);
      
      die(
    'no permission');
      
      } else {
      
      
    $random $this->randomString();
                    
    //Build the token
                    
    $token =  $_SERVER['HTTP_USER_AGENT'] . $random;
                    
                
    $_SESSION['forms_token'] = $this->hashData($token);
                
                
    self::$token_for_forms  "&forms_token=".$_SESSION['forms_token'];
      
      }


    Zuletzt geändert von sanktusm; 27.10.2017, 10:56.

    Kommentar

    Lädt...
    X