Protezione postato il 14/07/2009 22:29:30 nel forum programmazione, gdrcd, open source, hosting
Ciao ragazzi! ^_^
Quali sono i passi da seguire, per rendere il sito inhackerabile? O_O
Grazie ^_*
Pagine → 1
14/07/2009 22:33:25
Ti consiglio di dare una letta ad un thread che ha aperto tempo fà raz: https://www.gdr-online.com/readforum.asp?id=80617 ↗
14/07/2009 22:40:52
Leggo questo:
"Dopo aver compreso bene quali sono i rischi nell'usare queste tecnologie è bene usare nuovamente il buon senso, e sviluppare il proprio codice in modo che non si fidi in alcun modo dell'input di un utente. Questa cosa purtroppo è spesso ignorata con scuse del tipo "tanto poi lo banniamo". Il problema sorge quando l'utente con un attacco tramite campo di input non protetto prende il controllo del sito, blocca l'accesso agli admin (o li banna lui stesso), oppure causa danni ad altri utenti. In quel caso il ban non servirà a nulla, perchè il danno sarà già bello che fatto. Ci vuole prevenzione, e per farla bisogna usare la testa."
Ma esattamente, come si può evitare che si verifichi questa condizione;
"Il problema sorge quando l'utente con un attacco tramite campo di input non protetto prende il controllo del sito, blocca l'accesso agli admin (o li banna lui stesso), oppure causa danni ad altri utenti."
Cioè, praticamente, come si dovrebbe operare, e come ce ne si accorge mentre questo, accade? O_O
14/07/2009 22:55:08
Il visitatore malizioso può prendere il controllo del sito in due principali maniere:
Forgiando il cookie che contiene la PHPSESSID dell'amministratore oppure con una SQL Injection che gli mostri i dati dell'admin o lo logghi direttamente come admin.
Entrambi gli attacchi che ho citati possono essere evitati filtrando l'input dell'utente togliendo sia i caratteri pericolosi per il sql (c'è una funzione che direttamente rende la stringa sicura per lo Sql, mi pare sia mysql_escape qualcosa. Vai su php.net e cercala) sia i tag che possono inizializzare uno script malizioso (di solito javascript) dunque con un html_entities o se vuoi essere più puntiglioso con un rigido sistema di regular expression che ammettano solo input che seguono una traccia ben determinata.
Comunque per saperne di più ti linko un url che mi fu suggerito tempo fa: http://www.codinghorror.com/blog/archives/001171.html
15/07/2009 08:42:09 e modificato da blancks il 15/07/2009 08:51:03
1) Esegui un forte escape dei dati passati via post e get (bloccando caratteri come , " ' . ; _ magari rimpiazzandoli con entità html http://www.asciitable.it/ascii.asp ↗)
2) Filtra alcune parole riservate di Mysql (come Delete, Insert, Update, Like etc..) ed abbonda con l'uso della funzione mysql_real_escape (vedi la documentazione su php.net)
3) Usa tecniche antisniffing per la protezione del modulo di login https://www.gdr-online.com/readforum.asp?id=88216 ↗
4) Potendo eventuali malintenzionati, come suggerito in precedenza, "forgiare" la propria sessione a livello di quella dell'admin, è buona pratica inserire per l'accesso in ogni modulo del pannello di gestione, una password.
5) Uno sviluppatore si può impegnare per garantire la sicurezza in maniera molto relativa, di certo adottando le pratiche di cui prima il tuo sito è molto meno esposto di prima. Tuttavia ci tengo a rammentare che l'unico sistema davvero sicuro è un sistema isolato.
Ah dimenticavo:
1-bis) Filtra sempre anche il percorso delle url degli avatar dei personaggi, bloccando magari tutto ciò che non proviene dai classici domini dediti all'archiviazione di esse (imageshak, tinpic etc..) ed attento ai controlli, l'ideale sarebbe una solida regex anzichè verificare la presenza di una di quelle parole succitate nell'url perchè non ci vuole molto ad eludere in quel caso il controllo.
Questo perchè è possibile sfruttare l'embedding tramite il tag img per condurre attacchi cross-site scripting al sito.
15/07/2009 10:13:34 e modificato da dyrr il 15/07/2009 10:14:41
Domanda da niubbone:
Per verificare che un file sia veramente un immagine e non altro un metodo non potrebbe essere quando il giocatore invia l'url dell'immagine controllare
che i primi byte del file siano quelli corrispondenti al tipo del file del tipo:
JPEG File Interchange Format | .jpg | ff d8 ff e0
GIF format | .gif | 47 49 46 38
ecc ecc.
leggendo i primi byte del file tramite php e controllandone la corrispondenza?
Se il tipo di file è verificato viene inserito nel campo del database altrimenti no.
15/07/2009 10:27:27
04/02/2010 19:39:42
Ci sono anche cose meno gravi dell'XSS o della possibilita' di forgiare la sessione dell'admin:
ad esempio: poter leggere i messaggi degli altri, poter scrivere/leggere in forum a cui non si dovrebbe avere accesso (per esempio quello dello staff o dei master), modificare i messaggi in forum altrui, poter accedere all'amministrazione delle gilde senza alcun bisogno di password...
Insomma: come detto sopra mai fidarsi dell'input, proteggersi dall'XSS ma _anche_ controllare sempre che l'utente che vuole visualizzare una pagina con dei dati parametri abbia effettivamente il permesso di farlo, controllando il suo user id e appartenenza ad un dato gruppo.
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
Storie di Agarthi: Ricorda, è il nome a scegliere il personaggio...
shirayuki ha recensito Age of Crystals
Dominion Gdr → In una NY con un tessuto sovrannaturale nascosto, la Reggenza Vampirica e il Queens dei Lupi ribollono sotto il Dominio dei Bokor. Quanto durerà la pace?
Il gestore di Storie di Agarthi ha risposto alla recensione di paoltab
World of Warship: Battaglie Asimmetriche nel 14.5
nereya ha aperto una nuova discussione: Nuova Frontiera
Enlisted → Guida la tua squadra di soldati in combattimenti su larga scala, con fanteria, veicoli corazzati e aerei della IIa Guerra Mondiale!
New Wizarding World: Un nuovo Medimago
Sea of Conquest: Incontra Demona Rood! 🔥
anacronista ha recensito Storie di Agarthi
Nyx Insight - Project S.E.T.: Setting Refresh Time ✨
Dark Genesis → Ascendi al cielo in Dark Genesis! Raduna potenti semidei, costruisci il tuo impero volante e scontrati in battaglie divine!
mhorras1988 ha recensito Fengard
prosperus ha recensito Exclusive Villa GdR
visanders ha aperto una nuova discussione: Aiuto ricerca Gioco
kooei ha recensito Il Paiolo Magico
Storie di Agarthi → Un Varco si apre davanti a te, un mondo tra i mondi è a portata di mano. Lasciati alle spalle le certezze, inizia l'avventura!
KnightMyth - Intervista ai gestori del GdR KnightMyth ambientato nel mondo di Harry Potter
Ricerca staff! - Alcuni utili consigli di Lith su come usare in modo efficace lo strumento di ricerca staff su gdr-online!
Midgard Shard - Intervista allo Staff dello Shard dell'MMORPG Ultima Online Midgard!
Eternal Dream - Intervista al gestore di Eternal Dream Hunter X Hunter Story play by chat manga!
Moon Shadows - Intervista alla gestrice del play by chat urban fantasy Moon Shadows
Pokémon New Adventures - Intervista allo staff del play by chat Pokémon New Adventures!
Terry Brooks - La biografia di uno dei più grandi autori viventi di romanzi fantasy
D&D Next - Diamo uno sguardo in anteprima al nuovissimo Dungeons & Dragons Next!