Come proteggere correttamente un $ _GET in PHP?

10

Ho trovato un SQLi in un sito di lavoro per amici. Lo ha segnalato ai suoi superiori e mi hanno permesso di eseguire test aggiuntivi e anche di applicare patch al sito. Dopo aver esaminato il sito, il codice vulnerabile era $ _GET. Ho semplicemente aggiunto intval () per controllare la variabile se si trattava di un intero. Riesero a eseguire sqlmap, w3af e alcuni altri scanner. I fori sembravano essere stati rattoppati. Era questa la patch appropriata? In caso contrario, come posso proteggere correttamente un $ _GET in PHP?

    
posta Digital fire 02.08.2012 - 16:02
fonte

1 risposta

19

Non importa se $ _GET, $ _POST, $ _REQUEST, $ _FILE o anche $ _SERVER. È tutto l'input dell'utente e lì per una potenziale fonte di un attacco. Ciò che importa è come viene utilizzato l'input dell'utente. Nel caso di SQL Injection, lanciarlo su un int, come intval() funziona bene. Tuttavia, dovresti utilizzare query parametrizzate con una libreria come sqli, adodb o pdo.

Ma sql injection è solo un problema su owasp top 10 e un solo problema dal migliaia di tipi di vulnerabilità monitorati dal sistema CWE . Non esiste una bacchetta magica per fermare ogni vulnerabilità.

    
risposta data 02.08.2012 - 16:11
fonte

Leggi altre domande sui tag