Newsgroup: it.comp.www.php
Titolo: Url brevi lunghi e sicurezza

Salve,
Sto terminando il mio primo sito in php, niente di complesso per carita, mi 
ha permesso di farmi le ossa specie cercando di correggerlo quando i 
validatori (per il momento css e html 4.01 trans) mi scoprivano l'errore. In 
fututo cerchero di "validarlo" con xhtml.
l'unica pagina ad essere caricata è index.php
cambia il contenuto in base a i valori che passo tramite url (con metodo 
GET) che si creano in maniera dinamica del tipo:
www.miosito.it/index.php?catA=16&catB=pippo&Var_Pass=codice
interagendo (inserimenti, cancellazioni, ricerche, ecc) con un db
Cercando soluzioni per non far vedere nelle barre l'intero url ho scoperto 
che passare argomenti di questo tipo può essere pericoloso se non si fa un 
controllo sugli argomenti che vengono passati.
Facendo uno esempio stupido mi sembra di aver capito che un malintenzionato 
potrebbe modificare dei valori per far fare qualcosa al mio sito:
originale
www.miosito.it/index.php?catA=16&catB=pippo&Var_Pass=codice
Pericoloso
www.miosito.it/index.php?catA=16&catB=DISTRUZIONE&Var_Pass=TERRA
Ho fatto moooolta confusione o qualcuno riesce a interpretare quello che ho 
scritto e spiegarmi meglio?
Grazie e buon lavoro
JdiPik

 scritto e spiegarmi meglio?
se magari posti il sito se trovo 2 minuti ti faro' dei test!lol
ciau
-- 
#Wizard Developer#
http://www.wizardtale.org

 controllo sugli argomenti che vengono passati.
Una soluzione per non far vedere i parametri nella barra è il post, ma 
*attenzione* la sicurezza è la medesima del post.
I dati ottenuti via POST o GET *devono* essere verificati prima di 
utilizzarli, devi decidere a priori cosa ti aspetti di ricevere e 
confrontare il contenuto.
	Francesco


ok, pensavo che se un utente si salvava un link dinamico, una volta che 
quella particolare combinazione di variabili non portava piů a nulla 
semplicemete dava un errore di sistema costringendolo quindi a navigare nel 
sito utilizzando i link dinamici.
e' chiaro, faccio una funzione che controlli ogni parametro che viene 
inviato in una "lista di possibili", non c'č problema, l'unica cosa che 
ancora non ho capito: correrei veramente qualche tipo di pericolo se non 
introducessi questo controllo? quali ad esempio e in che modo?
Giusto per capirne di piů.
Grazie
JdiPik 


ti ringrazio dell'offerta, ora però prima di pubblicarlo voglio sistemare 
queste cosucce non si sa mai :)
Grazie
JdiPik 

 Giusto per capirne di più.
Per esempio, hai una pagina che prende i dati da una tabella e le mostra 
in base ad un parametro oppure in base all'utente che si è autenticato.
Per ogni valore mostrato ha il relativo link per la rimozione:
<a href="action.php?azione=del&id=6>Valore 6 </a>
Se prendi il link e cambi il 6 con 8 cancelli un altro record [1]
Se cambi il 6 con "6 or id<100" cancelli i primi 100 record [2]
[1] In questo caso, la rimozione deve controllare se il record 6 
appartiene all'utente collegato
[2] Un caso di sql injection:
$sql = "Delete from tabella where id=" . $_GET['id'];
Con mysql come db, puoi fare un piccolo "abuso" e racchiudere anche i 
valori interi tra ' salvandoti da diversi problemi
	Francesco

 introducessi questo controllo? quali ad esempio e in che modo?
http://www.slideshare.net/fullo/programmazione-sicura-con-php/