# Čo je SQL injection?

> SQL injection je injekčná slabина, pri ktorej nedôveryhodné údaje menia štruktúru alebo význam príkazu Structured Query Language (SQL).

- Kanonická URL: https://yellowcube.eu/sk/glossary/structured-query-language-injection/
- Vydavateľ: Yellow Cube
- Jazyk: sk
- Kontakt: hello@yellowcube.eu

## Obsah

Vyskytuje sa, keď aplikácia buduje databázové príkazy kombinovaním textu príkazu s útočníkom ovplyvnenými hodnotami bez zachovania spoľahlivej hranice medzi kódom a údajmi. Úspešný útok môže čítať alebo meniť údaje, obísť kontroly aplikácie alebo vyvolať databázové schopnosti dostupné aplikačnému účtu.

Primárna obrana je držať štruktúru dotazu fixnú a odovzdávať hodnoty cez parametrizované rozhrania. Validácia vstupu môže vymáhať podnikové očakávania, ale nenahrádza parametrizáciu; databázové oprávnenia majú tiež limitovať dôsledky, ak iná kontrola zlyhá.

### Kľúčové body

- **Bezpečná konštrukcia dotazov:** Použiť prepared statements alebo správne parametrizované databázové rozhrania naprieč každou cestou prístupu k údajom, vrátane pozadových úloh, administratívnych funkcií, importovaných údajov a nepriamych vstupov.
- **Dynamické prvky dotazu:** Parametre často nemôžu reprezentovať názvy tabuliek, názvy stĺpcov ani smery triedenia. Mapovať takéto voľby na fixný allowlist alebo prepracovať dotaz namiesto vkladania nedôveryhodného textu.
- **Redukcia dôsledkov:** Dať aplikačným identitám len potrebné databázové privilégiá, oddeliť roly tam, kde je to praktické, chrániť pripojovacie poverenia, vyhnúť sa nepotrebným databázovým schopnostiam a monitorovať abnormálne správanie dotazov.
- **Dôležité obmedzenie:** Escapovanie, stored procedúry, objektovo-relačné mapovanie, validácia vstupu ani firewall webových aplikácií automaticky nezabraňujú SQL injection; bezpečnosť závisí od toho, ako je každý dotaz nakoniec skonštruovaný a vykonaný.

### Súvisiace pojmy

[Bezpečnosť aplikácií](<https://yellowcube.eu/sk/glossary/application-security/>) · [Bezpečnosť webových aplikácií](<https://yellowcube.eu/sk/glossary/web-application-security/>) · [OWASP Top 10](<https://yellowcube.eu/sk/glossary/open-worldwide-application-security-project-top-10/>) · [Statické testovanie bezpečnosti aplikácií (static application security testing, SAST)](<https://yellowcube.eu/sk/glossary/static-application-security-testing/>) · [Dynamické testovanie bezpečnosti aplikácií (dynamic application security testing, DAST)](<https://yellowcube.eu/sk/glossary/dynamic-application-security-testing/>)

### Zdroje

[OWASP SQL Injection Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html) · [MITRE CWE-89: SQL Injection](https://cwe.mitre.org/data/definitions/89.html)

## Uvedenie zdroja a rozsah

Táto verzia Markdown sa generuje z rovnakých schválených záznamov ako kanonická stránka HTML. Pri citovaní použite kanonickú URL.

