Il sito da rifare sarebbe questo.. non l'ho fatto io :P però vorrei rifarlo da zero per evidenti motivi!
http://www.omcc03.net/frameset.htm
Il sito da rifare sarebbe questo.. non l'ho fatto io :P però vorrei rifarlo da zero per evidenti motivi!
http://www.omcc03.net/frameset.htm
La cosa interessante è che una tecnica di quel genere è molto più efficiente di avere un unico file XML contenente tutti i record, visto che deleghi al filesystem il lavoro del DB (cosa che si fa in molti casi, ad esempio tutti i server di posta che usano il formato maildir fanno ben così); per siti semplici può anche essere una buona soluzione.
Amaro C++, il gusto pieno dell'undefined behavior.
Come è successo? Scombinando l'url?
Cambi 1.txt a un nome di file qualunque che sicuramente non esiste, ad esempio assdasdasd.txt; il messaggio che viene fuori (grazie, PHP, ottimi strumenti di debugging) è
da cui si ricava immediatamente che il codice di apertura del file si limita a concatenare il parametro "eve" a "../public/events/"; a questo punto è immediato cambiare l'URL per leggere a piacimento qualunque file interno del tuo sito.Warning: file_get_contents(../public/events/assdasdasd.txt) [function.file-get-contents]: failed to open stream: No such file or directory in D:\Inetpub\webs\coroconcorezzoit\circolino\evento. php on line 36 - See more at: http://www.coroconcorezzo.it/circoli....Upv3QSNP.dpuf
Tempo speso: 30 secondi.
Ah, vedo sulla destra che c'è anche degli errori relativi a scandir, forse si possono sfruttare anche quelli per riuscire ad ottenere directory listing in giro per il tuo sito.
Ultima modifica di MItaly; 04-11-2013 a 17:04
Amaro C++, il gusto pieno dell'undefined behavior.
se passi al tuo script l'indirizzo del file di testo da cui prendere i dati DEVI anche fare qualche controllo di sanità, altrimenti allo script si può passare un file a caso, anche sé stesso, mostrandone il contenuto, o parte, a video
cattivo mitaly, cattivo![]()
Non dobbiamo trascurare la probabilità che il costante inculcare la credenza in Dio nelle menti dei bambini possa produrre un effetto così forte e duraturo sui loro cervelli non ancora completamente sviluppati, da diventare per loro tanto difficile sbarazzarsene, quanto per una scimmia disfarsi della sua istintiva paura o ripugnanza del serpente.
Con controllo di sanità cosa intendi?
Intendo validare sempre i parametri per evitare che si possano fare scherzetti di questo genere. Nel tuo caso, una possibilità potrebbe essere tentare di convertire il parametro in un intero prima di fare quella concatenazione, in modo che qualunque roba che non sia semplicemente un numero venga uccisa sul nascere.
Inoltre, prima di accedere ad un percorso che dipende da un parametro può essere sensato far "risolvere" completamente il percorso, rendendolo "canonico" (ci sarà sicuramente una funzione PHP per 'sta roba, anzi, ce ne saranno 12, di cui 4 che fanno la stessa cosa ma con i parametri in ordine diverso, 3 che ricalcano la sintassi C, 3 deprecate e 2 wrapper ad oggetti che non usa nessuno perché disponibili solo da PHP 7 in poi; tutte ovviamente hanno bachi diversi) e verificando lì se effettivamente (1) i file che stai pescando stanno nella directory corretta e (2) se hanno l'estensione corretta.
Ultima modifica di MItaly; 04-11-2013 a 17:14
Amaro C++, il gusto pieno dell'undefined behavior.