Popis:SQL injekce patří mezi jednu z nejrozšířenějších zranitelností s až kritickou závažností. Zneužití této zranitelnosti vede k úniku libovolných dat z databáze, která slouží aplikaci jako úložiště dat. Mimo to může SQL injekce útočníkovi umožnit také:
- Změnu nebo smazání uložených dat
- Čtení lokálních souborů
- Zápis souborů na server
- Odepření služeb serveru (DoS)
- Spuštění uložených procedur a příkazů operačního systému
Data lze pomocí SQL injekce číst z úložiště několika různými způsoby v závislosti na tom, o jaký typ SQL injekce se jedná. Rozlišujeme například:
- Union-based SQL injection
- Blind-SQL injection (boolean)
- Error-based SQL injection
- Time-Based SQL injection
- DNS data exfiltration
Obrana by měla spočívat
- ve správném escapování nebezpečných metaznaků, kterým je nejčastěji apostrof
- v přetypování převzatých hodnot na číselný datový typ, pokud je předávána číselná hodnota
- ve vhodném využití uložených procedur
- v použití prepared statementů
- ve správném využívání bezpečných frameworků