SQL injection

Lexikon webových zranitelností

zpět
Název: SQL injection
Zařazení: Validace vstupu a výstupu
Závažnost: Střední - Kritická

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ů

Související: