Newsgroup: it.comp.www.php
Titolo: Sicurezza di uno script

Ciao a tutti.
Mi sono trovato a discutere delle sicurezze da applicare ad una pagina
PHP che non fa altro che aprire in un frame un url passato come
parametro ad una pagina.
Es.
ciccio.php?vai=www.pluto.qq
apre www.pluto.qq in un frame.
Quali controlli si devono pensare per evitare abusi?
-- 
Amministratore
www.amiciamici.com
Giornalismo dal basso sull'amicizia e sul turismo
"Pronto Chi Bussa" il primo podcast di Parma e provincia?

 Quali controlli si devono pensare per evitare abusi?
Ops...dite che non è necessario nulla?


 Ops...dite che non è necessario nulla?
:-)
Chi lo passa l'URL da includere nel frame? Un qualsiasi utente?
L'URL può essere un qualunquissimo indirizzo o no?
In ogni caso, o direi di stare attenti ai potenziali attacchi XSS.
--
rob4you

 In ogni caso, o direi di stare attenti ai potenziali attacchi XSS.
Mi sapresti dire cosa controllare o darmi un link utile?
Nel frattempo vedo di cosa si tratta più da vicino.


> L'url potrebbe essere qualunque cosa.
Il problema è proprio qui.
Immagina che l'url, anziché:
ciccio.php?vai=www.pluto.qq
dove pluto.qq è un sito amico, fosse:
ciccio.php?vai=www.sitopericoloso.qq
Poiché tu non hai il controllo di ciò che viene inserito, questo 
potrebbe creare problemi.
Altra cosa, o esegui l'escaping del parametro "vai"?
Immagina che anziché passare solo "www.pluto.qq", passassi qualcosa 
tipo:
"www.pluto.qq' onload='while(1) alert('stronzo!');" :-)
oppure direttamente solo del codice javascript. Tutte situazioni 
spiacevoli, problematiche.
Sottolineo che nello scenario da te immaginato, in cui semplicemente 
mostri in un frame il contenuto di una qualsiasi pagina web (e quindi 
non usi quell'indirizzo per fare altre operazioni sul tuo server), i 
potenziali problemi sarebbero solo per il povero client (immagine 
l'aggiunta di codice javascript indesiderato ad esempio, o la 
visualizzazione di una pagina appunto pericolosa).
Di spiegazioni ed esempi di XSS in generale su google ne trovi 
parecchi.
Io ti segnalo un solo aspetto interessante, che riguarda più una 
particolarità di IE. Dai un'occhiata, non è detto che centri proprio 
con il tuo quesito, ma sai com'è, aumenta la cultuuura. :-)
http://www.securiteam.com/windowsntfocus/6B00K0KBQE.html
--
rob4you

 Altra cosa, o esegui l'escaping del parametro "vai"?
Bhè ok questo lo faccio sempre, scusate se non l'ho specificato.


 premeva.
Beh, è una cosa quasi "impoaaibile" :-)
Supponi che il sito pluto.qq oggi è un sito non pericoloso, così tu ne 
permetti l'inserimento tramite il frame.
Ma se domani, a tua insaputa, il sito pluto.qq diventa un sito 
"cattivo", beh, sei bello e fregato.
Ma perché vuoi permettere l'inserimento di siti di terze parti in un 
frame del tuo sito? Cosa vuoi ottenere in pratica? Forse si riesce a 
trovare una soluzione più "tranquilla".
--
rob4you

 trovare una soluzione più "tranquilla".
Tutto quello che fa quel file è aprire un frame in alto con un banner e
sotto il sito che esce dal mio sito. Non posso avere un elenco di siti
attendibili. Non controllo se il referer è il mio sito...potrebbe
servire o impedirebbe troppi accessi?
L'url lo devo passare per forza di cose in chiaro.


 servire o impedirebbe troppi accessi?
Che intendi esattamente? Se tu il sito lo metti nel frame tramite:
ciccio.php?vai=www.pluto.qq
Cosa cambia dal punto di vista del referrer se pluto.qq è "buono" o 
"cattivo"?
Forse non ho ancora ben afferrato l'ambito in cui intendi operare.
Magari posta il sito di cui parli, così forse vedendo direttamente di 
che si tratta risulta più semplice capire.
--
rob4you

In pratica lo script ciccio.php è ospitato sul mio sito.
Esso carica un banner mio in un frame top e una pagina web passata come
indirizzo dalla variabile $vai.
Tramite la variabile non direi che corro il rischio di attacchi XSS.
La maggior parte dei link nascono da segnalazioni dal mio forum e li sto
tranquillo.
Ma venuti a conoscenza di tale script potrebbe essere usato da un utente
per scrivere l'indirizzo ed aggiungere un URL a volontà.
Se controllo che la pagina "nasca" come referer dal mio sito elimino
forse alcuni problemi.
Mi preme sapere se ci sono tecniche per rendere sicuro questo script
prima di tutto per il mio spazio web, secondariamente per gli utenti che
lo usano e, ultimo ma non ultimo, dall'uso dello script per realizzare
attacchi di qualche tipo.
