Quote:
Originariamente inviato da ^TiGeRShArK^
mmm..
ok ..
ora mi è chiaro cosa faccia chroot..
ma mi sfugge perchè fare tutto ciò..
non sarebbe meglio usare sempre path relativi e nel caso ci sia un path assoluto impedire l'esecuzione?
con i path relativi si può risalire solo alle cartelle sotto quella corrente, quindi basterebbe controllare che il path non contenga ".." e/o "/" all'inizio della stringa...
o no? 
|
non è così semplice: a voler fare un algoritmo veramente esaustivo di parsing del path non basterebbe controllare l'assenza del / iniziale e l'assenza TOTALE di "..", perché in realtà il path, pur contenendo il / iniziale e/o i ".." potrebbe comunque essere valido. insomma, non è molto elegante come soluzione, e tutto sommato neanche tanto semplice. preferirei se fosse qualcosa di molto più robusto basato sulla sicurezza del sistema operativo (chroot di Linux è perfetto, i restricted token e l'impersonazione di Windows NT un po' meno ma vanno bene lo stesso), anche perché scrivere un mio algoritmo di parsing del path non mi va per paura di produrre qualcosa che non coincide esattamente con l'algoritmo del sistema operativo (a maggior ragione quando il sorgente deve essere portabile su due piattaforme molto diverse tra loro...)