---
title: "SQL injection"
description: "SQL injection to atak polegający na wstrzyknięciu złośliwego kodu SQL przez dane wejściowe. Poznaj mechanizm, skutki i metody obrony."
url: "https://nodea.pl/pl/slownik-pojec/sql-injection"
lang: "pl"
updated: "2026-07-13"
---

# SQL injection

> SQL injection to atak polegający na wstrzyknięciu złośliwego kodu SQL przez niezabezpieczone dane wejściowe, pozwalający manipulować zapytaniami do bazy danych.

**SQL injection** (wstrzyknięcie kodu SQL) to atak polegający na przemyceniu złośliwego fragmentu zapytania [SQL](https://nodea.pl/pl/slownik-pojec/sql) przez niezabezpieczone dane wejściowe aplikacji. Jeśli program bez odpowiedniej ochrony wkleja dane od użytkownika wprost do zapytania, atakujący może zmienić jego sens i uzyskać nieautoryzowany dostęp do [bazy danych](https://nodea.pl/pl/slownik-pojec/baza-danych). To jedna z najstarszych i najgroźniejszych podatności wymienianych na liście OWASP Top 10.

## Na czym polega SQL injection

Atak jest możliwy, gdy aplikacja buduje zapytanie SQL przez proste sklejanie tekstu z danymi wpisanymi przez użytkownika — na przykład w formularzu logowania, polu wyszukiwania czy parametrze adresu URL. Napastnik zamiast zwykłej wartości wpisuje spreparowany ciąg, który „domyka" oryginalne zapytanie i dopisuje własne polecenia. Dzięki temu może:

- ominąć uwierzytelnianie i zalogować się bez znajomości hasła,
- odczytać dane, do których nie ma uprawnień (np. całą tabelę użytkowników),
- zmodyfikować lub usunąć rekordy,
- w skrajnych przypadkach wykonać polecenia systemowe na serwerze bazy.

Odmiany ataku obejmują m.in. wstrzyknięcia oparte na komunikatach błędów, na czasie odpowiedzi (blind SQL injection) oraz na łączeniu wyników (UNION-based).

## Zastosowanie w praktyce

Ochrona przed SQL injection jest obowiązkowym elementem bezpiecznego programowania. Fundamentem są **zapytania parametryzowane** (prepared statements), które traktują dane użytkownika wyłącznie jako wartości, nigdy jako kod. Uzupełniają je walidacja danych wejściowych, zasada minimalnych uprawnień konta bazy danych oraz warstwowa obrona z użyciem zapory aplikacyjnej [firewall](https://nodea.pl/pl/slownik-pojec/firewall) typu WAF. Regularne testy bezpieczeństwa i audyty kodu — zgodne z wytycznymi [OWASP](https://nodea.pl/pl/slownik-pojec/owasp) — pozwalają wychwycić podatne miejsca, zanim zrobi to atakujący.

### Jak zabezpieczyć aplikację przed SQL injection?

Podstawą są zapytania parametryzowane (prepared statements), które oddzielają kod SQL od danych użytkownika. Dodatkowo warto stosować walidację i filtrowanie danych wejściowych, zasadę minimalnych uprawnień konta bazy oraz zaporę aplikacyjną WAF jako dodatkową warstwę ochrony.

### Czym grozi udany atak SQL injection?

Skutki bywają poważne: wyciek danych osobowych i haseł, ich modyfikacja lub usunięcie, ominięcie logowania, a w skrajnych przypadkach przejęcie kontroli nad serwerem bazy. To jedna z najgroźniejszych i najczęściej wykorzystywanych podatności aplikacji webowych.

## Powiązane

- [SQL](https://nodea.pl/pl/slownik-pojec/sql)
- [baza danych](https://nodea.pl/pl/slownik-pojec/baza-danych)
- [XSS](https://nodea.pl/pl/slownik-pojec/xss)
- [OWASP](https://nodea.pl/pl/slownik-pojec/owasp)
- [Firewall](https://nodea.pl/pl/slownik-pojec/firewall)

---

Wersje językowe: [en](https://nodea.io/en/glossary/sql-injection.md)  
Spis treści witryny: [llms.txt](https://nodea.pl/pl/llms.txt)
