Vulnerabilities

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í.

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

Ready to validate what matters?

Ready to validate what matters?

Plexicus is Proof-Driven AppSec: validated findings, contextual understanding, and reviewed remediation — anchored in evidence, scoped with you.

Qualification

Check whether AI Swarm Pentest fits your environment.

Share the minimum context. We will review the scope and tell you the next commercial step.

Before submitting — verify you fit

Teams with fewer than 50 developers: start a 14-day Trial instead of booking a demo. Start a 14-day Trial →

0 / 280

No commitment. If you don't fit, we'll tell you.

SAMPLE HANDOVER · ILLUSTRATIVE

Sample evidence handover

A trimmed view of what your team receives at the end of an AI Swarm Pentest engagement. Real engagements include full technical evidence, executive narrative, and a remediation plan.

VALIDATED FINDING Evidence attached

Server-Side Request Forgery in webhooks/receiver

demo-project/sample-app · src/webhooks/receiver.py:42

SeverityHigh CVSS 3.18.6 Priority79 Confirmedvia replay

Untrusted caller-supplied URLs reach an internal egress without an allowlist. Replayed in a sandbox against a fresh authorised target — the same control was validated to fail twice.

REVIEWER-READY REMEDIATION Merge-ready PR

Validate the target URL against an allowlist of permitted hostnames. Reject private/internal IP ranges. Enforce HTTPS only.

plexicus/remediation/webhooks-ssrf 3 changed · 0 new files
42resp = requests.get(target_url)
42+if not is_allowed_host(target_url):
43+  raise WebhookRejected(target_url)
44+resp = requests.get(target_url, timeout=5)
Every engagement hands over:
  • Executive briefing
  • Validated findings list
  • Merge-ready PRs
  • Compliance mapping (NIS2 · DORA · CRA)