Ho sviluppato un sito Web per un cliente in cui pubblicheranno le immagini della loro merce online. L'URL è www.domiainname.com/item-details.cfm?sku=125
. Qualcuno ha provato a cercare su www.domiainname.com/item-details.cfm?sku=125%20and%203=3
quale prodotto ed errore in cui sono stato avvisato.Si tratta di un esempio di un attacco SQL Injection?
Ho anche ricevuto segnalazioni di errori di:
[email protected]@version--
item-details.cfm?sku=1291'[email protected]@version
[email protected]@version
Gli ultimi tre esempi sono sicuramente di qualcuno che cerca di entrare nel sistema, giusto?
Se abbiamo convertito questo in stored procedure, sarebbe che ridurre o eliminare il rischio di attacchi di inserimento?
E sì, le query sono avvolti nei tag cfqueryparam (ad esempio ' –
HPWD
Capisco cosa stavano cercando di fare con la versione @@ ma cosa direbbero 3 = 3? Il mio raccoglitore di errori riporta anche l'indirizzo IP. Ho pensato di aggiungere un db tabella e ho aggiunto gli IP che ricevo da situazioni del genere e poi mandare questi utenti a google o qualcosa del genere. È efficace o solo un esercizio in futiltà ? – HPWD
Aggiungendo una tautologia (ad es. 3 = 3) stanno cercando di ottenere tutti i risultati dal database che possono. Tuttavia, forse non sono così intelligenti come tutto il resto perché avrebbero bisogno di usare OR in quel caso invece di AND! Finché utilizzi '' dovresti essere al sicuro dagli attacchi di SQL injection (almeno su SELECT, potresti essere ancora vulnerabile agli attacchi XSS su INSERT e UPDATE). Tuttavia, è una buona idea convalidare i parametri in modo da poter intercettare l'errore prima che accada: provare a fare ' ' per intercettare questo, o usare 'isNumeric()' essere avvisati –