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

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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'];
      
      }


    Last edited by sanktusm; 27-10-2017, 09:56.

    Comment

    Working...
    X