Lednové slevy jsou tu! Až 60 % na vše. Vyzkoušejte nový AI WebEditor. 

Co je SQL injection

SQL injection (SQLi) je typ kybernetického útoku, při kterém útočník vloží do vstupního pole (např. formulář na webu) škodlivý kód v jazyce SQL. Pokud aplikace není správně zabezpečená, databáze tento kód vykoná a útočník tak může získat přístup k citlivým datům nebo dokonce celou databázi ovládnout. 

Jde o jednu z nejznámějších a zároveň nejnebezpečnějších zranitelností webových aplikací. 

Jak SQL injection funguje 

K útoku dochází v situaci, kdy webová aplikace pracuje s databází, ale nedostatečně kontroluje vstupy od uživatelů. Útočník může do políčka (např. pro přihlášení) vložit nejen text, ale i SQL příkaz. 

Příklad: 

Web očekává dotaz: 

SELECT * FROM uzivatele WHERE jmeno = ‚petr‘ AND heslo = ‚tajneheslo‘; 

Útočník ale zadá do pole pro heslo: 

‚ OR ‚1‘=’1 

Výsledný dotaz pak vypadá takto: 

SELECT * FROM uzivatele WHERE jmeno = ‚petr‘ AND heslo = “ OR ‚1‘=’1′; 

Podmínka OR ‚1‘=’1′ je vždy pravdivá → databáze vrátí přístup i bez znalosti správného hesla. 

Důsledky SQL injection 

Úspěšný útok SQL injection může mít pro web i jeho uživatele velmi závažné následky. Nejde jen o narušení dostupnosti, ale hlavně o ztrátu důvěry.  

Útočníci mohou: 

  • získat citlivé údaje (hesla, osobní data, platební informace), 
  • změnit nebo smazat data v databázi, 
  • vytvořit vlastní administrátorský účet, 
  • zneužít databázi k dalším útokům, 
  • úplně shodit celý web nebo aplikaci. 

Jak se proti SQL injection bránit 

Existuje několik osvědčených metod, jak riziko SQL injection minimalizovat. Každý správce nebo vývojář by měl dbát na to, aby aplikace byla od začátku navržena bezpečně. 

  1. Používejte parametrizované dotazy nebo připravené statementy. 
  2. Nikdy nevkládejte uživatelský vstup přímo do SQL dotazu. 
  3. Validujte a omezujte vstupy – např. povolte jen určité znaky. 
  4. Pravidelně aktualizujte software, frameworky a databázové systémy. 
  5. Monitorujte databázové logy a neobvyklé aktivity. 
  6. Využívejte web application firewall (WAF), který umí škodlivé požadavky blokovat. 
Poslední aktualizace: