02.06.2013 Views

analisi e gestione della sicurezza di una complessa applicazione ...

analisi e gestione della sicurezza di una complessa applicazione ...

analisi e gestione della sicurezza di una complessa applicazione ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

CAPITOLO VI - Gli attacchi e il progetto OWASP<br />

Questa costituisce la migliore soluzione per fronteggiare la SQL Injection, ma la <strong>sicurezza</strong> non<br />

si costruisce mai su un solo fronte. Oltre a scrivere co<strong>di</strong>ce sicuro è fondamentale aggiungere le<br />

altre contromisure (citate precedentemente) sulla configurazione del database server.<br />

6.2.4 Proteggersi dalla SQL injection<br />

Come si è già accennato, l’unica possibilità <strong>di</strong> protezione è un controllo sui dati ricevuti da<br />

parte del programmatore, durante lo sviluppo del programma. In altre parole, bisogna<br />

assicurarsi che l’input ricevuto rispetti le regole necessarie, e questo può essere fatto in <strong>di</strong>versi<br />

mo<strong>di</strong>:<br />

- controllare il tipo dei dati ricevuti (se ad esempio ci si aspetta un valore numerico,<br />

controllare che l’input sia un valore numerico);<br />

- forzare il tipo dei dati ricevuti (se ad esempio ci si aspetta un valore numerico, si può<br />

forzare l’input affinché <strong>di</strong>venti comunque un valore numerico);<br />

- filtrare i dati ricevuti attraverso le espressioni regolari (regex);<br />

- sostituire i caratteri pericolosi con equivalenti caratteri innocui (ad esempio in entità<br />

html);<br />

Ovviamente, questi meto<strong>di</strong> possono essere applicati anche insieme sullo stesso dato in input. La<br />

scelta varia a seconda delle tipologie <strong>di</strong> questi dati. Occorre, quin<strong>di</strong>, prestare particolare<br />

attenzione a tutte le varianti <strong>di</strong> un input, tenendo conto <strong>di</strong> ogni possibile (oppure improbabile)<br />

ipotesi.<br />

122

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!