Ciao a tutti,
sono alle prese con un aggiornamento del mio sito per il quale vorrei assicurarmi che non vi siano falle di sicurezza in quelle pochissime pagine in cui un utente può scrivere in un form.
Leggendo la guida sui Command Injection Flaws (http://www.html.it/pag/16883/command-injection-flaws/), mi sono iniziato a porre il problema di un eventuale user che mi passa nel codice un comando shell.
Premesso che non ne ho mai digitato uno su una tastiera, quindi non ho idea nemmeno dell'aspetto che avrebbe, mi chiedo se sia una mia pippa mentale o sia effettivamente un caso da tenere in considerazione.
Attualmente l'unico controllo che faccio su _POST e _GET è htmlspecialchars() e l'addslashes() che viene fatto in automatico da php. Occorre considerare altri casi secondo voi?
E' ad esempio esagerato prevedere un controllo sull'host di provenienza quando si prende in considerazione il contenuto di un form scritto dall'utente?
Codice PHP:
$url_di_provenienza = parse_url($_SERVER["HTTP_REFERER"]);
if (strpos($url_di_provenienza['host'], "ilmiosito.it")) {
//echo "Ok, host di provenienza valido
";
} else {
echo "stai facendo il login da un sito che non è ilmiosito.it pertanto non è possibile procedere.
Host di provenienza: ".$url_di_provenienza['host']."
";
exit();
}
Nel mio sito capita poi che l'utente possa caricare una sua foto caricando quindi un file sul server.
Al di la dei controlli sull'estensione del file, che tipo di verifiche è opportuno fare su queste operazioni per evitare che il file caricato sia dannoso o un cavallo di troia sul server?
Grazie mille anticipatamente!
Un saluto,
Marco