PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   token setzen für alle Inhalte am ende der php Laufzeit (https://www.php-resource.de/forum/php-developer-forum/106090-token-setzen-fuer-alle-inhalte-am-ende-der-php-laufzeit.html)

sanktusm 26-10-2017 17:24

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?

sanktusm 27-10-2017 11:27

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





Alle Zeitangaben in WEZ +2. Es ist jetzt 02:25 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG