Newsgroup: it.comp.www.php
Titolo: [OT] Passaggio parametri tramite link e get

Scusate se non è propriamente IT...
Mettiamo che, per assurdo, non si possa utilizzare una form method=post 
per passare dei parametri ad un php, ma si debba obbligatoriamente 
passarli tramite un link del tipo
<a href="pagina.php?parametro=valore&....">
Ovviamente tutto ciò si può fare ma ha i suoi bei problemi di sicurezza.
Per rendere le cose ancora più difficili e simpaticamente bastarde, 
mettiamo anche che non si possa toccare il sorgente di pagina.php.
Cosa si potrebbe fare nella pagina chiamante per evitare che si veda 
l'indirizzo con i parametri in chiaro sulla pagina chiamata?
Io avevo pensato ad un banale javascript che apre una finestra con la 
barra degli indirizzi nascosta (per farvi capire il livello di 
protezione che mi serve, niente di eccezionale, gli utenti sono 
tutt'altro che sgamati), ma vorrei altri pareri.
-- 
Jax

 ma vorrei altri pareri.
Se usi JS allora puoi evitare anche la popup con barre nascoste, e usare 
AJAX o un iframe per fare la stessa cosa.
Oppure puoi richiamare quella pagina lato server con PHP e poi rispedirne 
l'output al client. In pratica crei un "proxy".
Bye.

 barra degli indirizzi nascosta 
ma se non puoi toccare il sorgente php, dove la metteresti la chiamata a
questo javascript, di grazia?

 l'indirizzo con i parametri in chiaro sulla pagina chiamata?
La questione sicurezza ha ben poco a che fare con ciò che vuoi evitare.
Anche qualora si potesse avere un form inviato in POST, ci vuole
esattamente la stessa fatica (cioè nulla) a sgamare quali parametri
passi da una pagina all'altra.
Se poi non vuoi che si vedano in un link i parametri che passi,
potresti ad esempio fare l'endoding base 64 via php di tutta la stringa
di parametri che vuoi passare, e poi il successivo decoding.
Qualcosa tipo:
echo '<a href="pagina.php?chiave=' .
base64_encode("parametro1=valore2&parametro2=valore2") . '>Clicca
qui</a>';
E in ricezione usi il rispettivo:
$chiave = base64_decode($_GET['chiave']);
parse_str($chiave);
E fai tutte le validazioni necessarie che vanno sempre fatte.
Ma secondo me non ne vale la pena.
-- 
rob4you
è tornato ;)

 
crea una pagina ad es pag_temp.php
sulla pagina chiamante non metti tutti i parametri,
ma un "indice" che passi a pag_temp.php
su pag_temp.php associ ad ogni indice della get il vero comando da
passare a pagina.php
esempio
in pagina chiamante:
<a href="pag_temp.php?par1=val11&par2=val21...">
<a href="pag_temp.php?par1=val11&par2=val22...">
....
in pag_temp.php:
$p1= $_GET["par1"];
$p1= $_GET["par1"];
...
if (($p1== "val11")&&($p2== "val21")&&...) fai qualcosa
if (($p1== "val11")&&($p2== "val22")&&...) fai qualcos'altro
non so se e' chiaro...
spero di non aver sbagliato conla fretta... sto anche lavorando nel
frattempo ;-)

 E in ricezione usi il rispettivo:
Ovviamente devi poter avere il controllo su pagina.php, altrimenti
amen.
-- 
rob4you

 tutt'altro che sgamati), ma vorrei altri pareri.
Lasciate perdere quello che ho scritto. La persona che me l'ha spiegato 
(a cui stavo facendo un favore) me l'ha spiegato coi piedi... quando mi 
sono collegato per vedere cosa intendeva fare ho capito che voleva 
tutt'altra cosa (che comunque non c'entra col php)... posterò altrove.
Grazie a tutti per le risposte e scusate se vi ho fatto perdere tempo...
-- 
Jax