Ver Mensaje Individual
  #3 (permalink)  
Antiguo 18/06/2016, 16:54
Avatar de aukun
aukun
 
Fecha de Ingreso: febrero-2015
Mensajes: 10
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: variables SessionStorage alguien las encuentra??

la idea es conseguir que variables que se encuentran en el objeto storage no puedan ser conseguidos por el usuario, en teoria cuando ejecutas el script donde adjudicas variables al objeto session storage si lo haces por header siempre te aparecera cuando miras dentro del about:cache del browser, mientras que si le metes un echo con el script que adjudica las variables storage y miras dentro del about:cache de cualquier browser este no aparece ademas como estas siempre dandole la misma url se reescribe dentro de las caches de los browsers. Luego en la tercera repeticion del php lo meto dentro de un evento onload y hago un clear de sessionstorage de manera que cuando desde la consola del browser miras dentro sessionStorage este aparece vacio mientras que ja has pasado esos valores por el script. El problema es que si hay algun evento dinamico del usuario esos valores ja han desaparecido, el problema siguiente es que al hacer var t=sessionStorage ; si luego hacemos un window.sessionStorage.clear(); tambien estaremos haciendo un clear a la variable t. por lo que el final que hacemos lo siguiente:

Código:
<?php
//
//type,nick,pass
//echo 'el tipus de input es: '.implode(',',$_POST); 
//


/*			apartats de funcions inici: funcio bas			//////////////////////*/
function bas($s,$a,$t){$f='';$A=(str_split($a));$C=count($A);bcscale(0);$c="$C";if($t=='0'){$d="$s";$j=bccomp($d,$c);if($j<0){$D=$d;}while($j>=0){$r=bcmod($d,$c);$w=bcsub($d,$r);$D=bcdiv($w,$c);$f=$A[$r].$f;$d=$D;$j=bccomp($d,$c);}$f=$A[$D].$f;}if($t=='10'){$f='0';$w=strlen($s);$i=$w-1;for($Y=0;$Y<$w;$Y++){$y=$i-$Y;$l=$s[$Y];$L=array_search($l,$A);$f=bcadd($f,bcmul(bcpow($c,"$y"),"$L"));}}return $f;}
/*			apartats de funcions final.						//////////////////////*/
//phpinfo();
session_start();
if(array_key_exists('loads',$_SESSION)){$_SESSION['loads']++;}else{$_SESSION['loads']=0;};

if($_SESSION['loads']==0){
	
	$a='123456789x';$A=str_split($a);shuffle($A);$b=implode('',$A);
	$_SESSION['n']='0'.$b;
	
	echo "<script src='../scripts/'></script><script>var S=bas(screen.width+'x'+screen.height,'".$_SESSION['n']."','10');location.replace('.?s='+S);</script>";
	
}elseif($_SESSION['loads']==1){
	$_SESSION['screen']=bas($_GET['s'],$_SESSION['n'],'0');
	
	header('Location: http://localhost/');
		
}elseif($_SESSION['loads']==2){
	
	echo $_SESSION['screen'];
	
	echo "<script src='./scripts/'></script>
	<script>
	var s=sessionStorage;var W=Window;var w=window;
	
	
	window.onload=function(){
	
	var S=new Array(),t,c=0;for(t in s){S[t]=String(sessionStorage[t]);if(c<sessionStorage.length){c++;}else{break;}};///####traspass de variables string de sessionStorage a 
	
	W[S.pr].bas=function(){var a=bas[S.ar],A=a[1][S.sp](''),f='',s=1,d=w[S.pa](a[0]),i=A[S.le],c,r;if(w[S.pa](a[2])==10){var k=0,d=a[0],f=0;for(c=0;c<d[S.le];c++){var j=d[S.le]-c-1;k=A[S.in](d[c]);f=f+(k*(w[S.ma][S.po](i,j)));}return f;}if(w[S.pa](a[2])==0){while(s==1){r=d%i;c=((d-(r))/i);f=A[r]+f;d=c;s=(d>=i)?1:0;};return (A[c]==0)?f:A[c]+f;}}
	
	
	
	
	
	s.clear();}
	
	</script>";
	}



//$a=$_GET['s'];
//$j=bas($a,'0547186293x','0');
//echo $j.'<br>'.bas($j,'0547186293x','10');






?>
La siguiente pregunta es ¿como un usuario podria conseguir los valores de t de dentro del evento window.onload? Por ejemplo si ejecuto la pagina de google i voy a la consola del browser i pongo sessionStorage me loguera las variables que el servidor de google envia a storage, pero en caso de que el objeto sessionStorage sea clonado solo en las variables adquiridas no propietarias dentro de un array y este se encuentre dentro de un evento onload , al querer hacer un get de variables en la consola de los browsers estos no aparecen.Como curiosidad solo decir que Google tiene codigos de encriptacion javascript dentro del storage , codigos que luego mediante funciones va conformando la pagina. Pero esos codigos cuando hace onload son modificados y pasados a otras variables que solo existen dentro del evento onload por eso hago la pregunta partiendo de una forma sencilla que es el ejemplo propuesto.