validToken=\sha1( \darkphp\randomizer\DwRandomizer::randomize( 10 ) ); //$this->validToken=\darkauth\db\auth\xslToken::getValideToken( ); /* $formsId['xslToken']=$this->validToken; $formsId['xslTime']=time(); $formsId['xslTmpl']=$xslTmpl; if (\darkauth\DwDarkAuth::isNode()) { global $frDarkwebNetworkDir,$darkauthDir; if ( ! is_dir( $frDarkwebNetworkDir ) ) $frDarkwebNetworkDir = realpath( "{$darkauthDir}/.." ); require_once "{$frDarkwebNetworkDir}/db/DwNode.php"; //use frDarkwebNetwork\db\DwNode as DwNode; $formsId['nodeid']=\frDarkwebNetwork\db\DwNode::getId(); } */ $this->dirToken=\darkphp\randomizer\DwRandomizer::progressiveInArrayUUID( \scandir( $webTokensFolder ) ); $formsId['dirToken']=$this->dirToken; parent::__construct( $formsId ); $this->access = array(); // $webTokenFolder="{$webTokensFolder}/{$this->validToken}"; $webTokenFolder="{$webTokensFolder}/{$formsId['dirToken']}"; if ( ! is_dir( $webTokenFolder ) ) mkdir( $webTokenFolder ); if ( ! is_file( "{$webTokenFolder}/design.xsl" ) ) { file_put_contents( "{$webTokenFolder}/design.xsl" , ' "'.$this->validToken.'" );require_once \''."{$darkauthDir}/xsl/token/requestXSL.php".'\'; ?>' ); } if ( ! is_file( "{$webTokenFolder}/data.xml" ) ) { file_put_contents( "{$webTokenFolder}/data.xml" , ' "'.$this->validToken.'" );require_once \''."{$darkauthDir}/xsl/token/requestXML.php".'\'; ?>' ); } if ( ! is_file( "{$webTokenFolder}/style.css" ) ) { file_put_contents( "{$webTokenFolder}/style.css" , ' "'.$this->validToken.'" );require_once \''."{$darkauthDir}/xsl/token/requestCSS.php".'\'; ?>' ); } if ( ! is_file( "{$webTokenFolder}/script.js" ) ) { file_put_contents( "{$webTokenFolder}/script.js" , ' "'.$this->validToken.'" );require_once \''."{$darkauthDir}/xsl/token/requestJS.php".'\'; ?>' ); } if ( ! is_file( "{$webTokenFolder}/index.php" ) ) { file_put_contents( "{$webTokenFolder}/index.php" , ' "'.$this->validToken.'" );require_once \''."{$darkauthDir}/xsl/index.php".'\'; ?>' ); } } public function writeXml( $xml ,$child ) { $xmlMyXsltoken = $xml->createElement( "xsl-token" ); foreach( $this->data as $key => $data ) $xmlMyXsltoken->appendChild( $xml->createElement( $key, $data ) ); $child->appendChild( $xmlMyXsltoken ); $ressources = array(); $devices = array(); $browsers = array(); $ips = array(); foreach( $this->access as $myAcces ) { $myRessource = $myAcces->getRessource(); $myDevice = $myRessource->getDevice(); $myBrowser = $myDevice->getBrowser(); $myIp = $myBrowser->getIp(); if ( ! isset( $ips [ $myIp->ip ] ) ) $ips[$myIp->ip]=$myIp->writeXml( $xml ,$xmlMyXsltoken ); $xmlIp = $ips[$myIp->ip]; if ( ! isset( $browsers [ $myBrowser->id ] ) ) $browsers[ $myBrowser->id ]=$myBrowser->writeXml( $xml ,$xmlIp ); $xmlBrowser = $browsers[$myBrowser->id]; if ( ! isset( $devices [ $myDevice->id ] ) ) $devices[$myDevice->id]=$myDevice->writeXml( $xml ,$xmlBrowser ); $xmlDevice = $devices[$myDevice->id]; if ( ! isset( $ressources [ $myRessource->id ] ) ) $ressources[$myRessource->id]=$myRessource->writeXml( $xml ,$xmlDevice ); $xmlRessource = $ressources[$myRessource->id]; $myAcces->writeXml( $xml ,$xmlRessource ); } return $xmlMyXsltoken; } //$this->getFormValue( 'coockie_timeToLive' ,$_POST ); public function getFormValue( $key ,$request ) : ?string { $value=null; if ( isset( $this->data[ $key ] ) ) { $keyForm = $this->data[$key]; if ( isset( $request[ $keyForm ] ) ) $value = $request[ $keyForm ]; } return $value; } public function getFileValue( $key ) : ?string { $response=null; $dataFile = null; if ( is_file( $this->getSerialFile() ) ) $dataFile = unserialize( file_get_contents( $this->getSerialFile() ) ); if ( is_array( $dataFile ) && isset( $dataFile[$key] ) ) $response=$dataFile[$key]; return $response; } public function setFileValue( $key ,$value ) : void { $dataFile = null; if ( is_file( $this->getSerialFile() ) ) $dataFile = unserialize( file_get_contents( $this->getSerialFile() ) ); if ( is_null( $dataFile ) ) $dataFile=array(); $dataFile[$key]=$value; file_put_contents( $this->getSerialFile(), serialize( $dataFile ) ); } // \darkauth\db\xslToken::getValideToken( ); /* public static function getValideToken() { $myToken="no-more-token"; $myTokensfile=self::getXslDir()."/tokenxsl.txt"; if ( ! is_file( $myTokensfile ) ) { file_put_contents( $myTokensfile, file_get_contents( \darkauth\DwDarkAuth::getDataPath( )."/xsl_urls.txt" ) ); // file_put_contents( $myTokensfile, file_get_contents( "/var/bakuba/darkauth/db/auth/xsl_urls.txt" ) ); } $allTokens = file_get_contents( $myTokensfile ); if ( rand( 0,1 ) ) { $nextLine = strpos( $allTokens ,\PHP_EOL ); $myToken = substr( $allTokens ,0 ,$nextLine ) ; $stayToken = substr( $allTokens ,$nextLine +1 ); } else { $nextLine = strrpos( $allTokens ,\PHP_EOL, -2 ); //die( $nextLine.":".strlen($allTokens) ); $myToken = substr( substr( $allTokens ,$nextLine, -1 ), 1); $stayToken = substr( $allTokens ,0 ,$nextLine ); //die( $nextLine.":".$myToken.":".strlen($stayToken) ); } // $myToken= str_replace( // array('0','1','2','3','4','5','6','7','8','9') // ,array('A','B','C','D','E','F','G','H','I','J') // ,$myToken // ); file_put_contents( $myTokensfile, $stayToken ); return $myToken; } //*/ // \darkauth\db\xslToken::getXslToken( $myBrowser ,$_POST|$_GET ); public static function getXslToken( Access $myAccess ,string $xslToken = null ,string $xslTmpl = null ,array $formIds = null) : self { // die( self::getTokenXslFile( $xslToken ) ); if ( is_string( $xslToken ) && is_file( $tokenFile = self::getTokenXslFile( $xslToken ) ) ) { $xslToken = unserialize( file_get_contents( $tokenFile ) ); $xslToken->isNew=false; } else { $data=array(); foreach( $formIds as $key ) $data[$key]=\sha1( \uniqid() ); $xslToken = new self( $xslTmpl ,$data ); } $xslToken->access[]=$myAccess; file_put_contents( $xslToken->getXslFile() ,serialize( $xslToken ) ); return $xslToken; } // \darkauth\db\xslToken::getXslTokenFile( ); public function getXslTokenFile( array $localParams = null ) { //die( print_r( $this ,true ) ); //$keys = array( '${xslToken}' ,'${xslTime}' ); //$values = array( $this->validToken ,time() ); $keys = array( ); $values = array( ); if ( is_array( $localParams ) ) foreach( $localParams as $key => $value ) { $keys[]='${'.$key.'}'; $values[]=$value; } foreach( $this->data as $key => $value ) { $keys[]='${'.$key.'}'; $values[]=$value; } return str_replace( $keys ,$values ,file_get_contents( $this->data['xslTmpl'] ) ); } public function getSerialFile( ) { return $this->getDir()."/".$this->validToken."-extra.dbphp"; } public function getXslFile( ) { return self::getTokenXslFile( $this->validToken ); } public function getDir() : string { return self::getXslDir(); } public static function getTokenXslFile( string $token ) { return self::getXslDir()."/{$token}.dbphp"; } public static function getXslDir() { return self::$xslDir; } } \darkauth\db\auth\linkToken::init(); ?>