Command Palette

Search for a command to run...

Slovník SQL Injection (SQLi)

Co je SQL Injection (SQLi)?

SQL Injection (SQLi) je typ útoku, při kterém útočníci vloží škodlivý SQL příkaz do vstupního pole, aby manipulovali s databází.

Tento útok cílí na aplikace, které nedokáží správně zpracovat validaci uživatelského vstupu, což umožňuje neoprávněný přístup k citlivým datům, jako jsou hesla nebo údaje o kreditních kartách atd.

Jak SQL Injection funguje

Když aplikace přímo zahrnuje uživatelský vstup do databázového dotazu bez řádné validace, útočníci mohou změnit chování dotazu tak, aby vložili škodlivý SQL příkaz.

Například:

SELECT * FROM users WHERE username = 'admin' AND password = '12345';

Útočník by mohl vložit:

' OR '1'='1

Výsledkem by bylo:

SELECT * FROM users WHERE username = '' OR '1'='1' AND password = '';

To vždy vrátí pravda, což umožňuje neoprávněný přístup.

Proč je SQL Injection důležitý v kybernetické bezpečnosti

SQL Injection je nejnebezpečnější a nejstarší technika v kybernetické bezpečnosti. Tento typ útoku je konzistentně uváděn v OWASP Top 10.

I malé zranitelnosti umožňují útočníkovi:

  • Přístup, úprava nebo smazání dat
  • Obcházení autentizace
  • Provádění administrativních operací na databázi.
  • Ohrožení celého systému.

Běžné typy SQL injekcí

  • Klasická SQLi : Přímá injekce přes webové formuláře nebo URL parametry.
  • Slepá SQLi : Útočníci nepřímo odvozují informace z databáze (např. prostřednictvím chybových zpráv nebo doby odezvy).
  • SQLi založená na UNION : Používá operátor UNION ke kombinaci výsledků z více dotazů.
  • SQLi založená na chybách : Spoléhá na chybové zprávy databáze k extrakci informací.
  • Časově založená slepá SQLi : Využívá zpoždění odezvy serveru k odhadu výsledků dotazů.

Jak zabránit SQL injekci

1. Používejte parametrizované dotazy (připravené příkazy)

Zajistěte, aby SQL příkazy považovaly uživatelský vstup za data, nikoli za spustitelný kód.

cursor.execute("SELECT * FROM users WHERE username = ?", (username,))

2. Validace a sanitace vstupu

Validujte veškerý vstup od uživatelů, povolujte pouze očekávané znaky.

3. Používejte ORM frameworky

Frameworky jako Prisma, Hibernate atd. snižují přímou manipulaci s SQL.

4. Princip nejmenších oprávnění

Omezte uživatelská oprávnění, dávejte pouze potřebná oprávnění.

5. Pravidelné bezpečnostní testování

Používejte nástroje pro testování bezpečnosti aplikací jako SAST, DAST nebo IAST k včasné detekci chyb injekce.

Příklad v reálném světě

Webová stránka online obchodu utrpěla narušení, kdy útočníci použili SQL injekci ve formuláři pro přihlášení k extrakci údajů o kreditních kartách z její databáze.

Související termíny

Další kroky

Připraveni zabezpečit vaše aplikace? Vyberte si svou cestu vpřed.

Připojte se k více než 500 společnostem, které již zabezpečují své aplikace s Plexicus

SOC 2 Compliant
ISO 27001 Certified
Enterprise Ready