Co to jest wstrzyknięcie SQL?

Wstrzyknięcie w języku SQL (Structured Query Language) to rodzaj ataku, który prawie zawsze jest podejmowany przeciwko witrynie internetowej opartej na bazie danych. Jest to próba wprowadzenia złośliwego kodu do zapytań SQL witryny w celu zakłócenia zarządzania danymi poprzez zniszczenie, zmianę lub ujawnienie danych przechowywanych w tabelach bazy danych, która steruje witryną. SQL to standardowy język programowania używany do tworzenia, aktualizowania i pobierania danych przechowywanych w bazach danych.

Zagrożenia związane z atakami typu SQL injection są liczne i często bardzo niszczycielskie, gdy są pomyślnie przeprowadzane. Poufne informacje, takie jak numery kart kredytowych, dokumentacja medyczna danej osoby, nazwy użytkownika i hasła do kont takich jak bankowość internetowa i poczta e-mail, a także różnego rodzaju numery identyfikacyjne mogą być narażone na cyberprzestępców. Chociaż kradzież danych jest prawdopodobnie głównym celem każdego, kto próbuje użyć wstrzykiwania SQL, nie jest to jedyna motywacja do stosowania tego lub innego rodzaju techniki wstrzykiwania kodu, takiej jak cross-site scripting. Odwiedzający witrynę wyświetlającą informacje, które im się nie podobają, mogą próbować ataków typu SQL injection, aby wyłączyć witrynę, ukraść dane lub zmienić dane, aby zniszczyć misję osób stojących za witryną.

Czasami atak typu SQL injection jest podejmowany na stronie internetowej przez niezadowolonego gościa, któremu właściciele witryny mogli zablokować jego konto, zazdroszczą popularności strony lub chcą zniszczyć biznes online kogoś, kogo uważa za być wrogiem. Znajomość języka SQL jest oczywiście wymagana do uruchomienia ataku typu SQL injection, ale ogólnie nie jest on uważany za bardzo trudny do nauczenia w porównaniu z innymi językami programowania, a wiele można osiągnąć jedynie dzięki podstawowej, ale solidnej wiedzy na temat tego, jak używać to. Oznacza to, że istnieje spora liczba osób, które surfują po Internecie i posiadają umiejętności niezbędne do próby wstrzyknięcia SQL na stronę internetową.

Twórcy stron internetowych, zwłaszcza ci, którzy specjalizują się w tworzeniu stron internetowych zaplecza, są odpowiedzialni za zapewnienie, że programowane przez nich witryny są zabezpieczone przed wstrzyknięciem SQL. Prawie zawsze istnieje więcej niż jeden sposób na osiągnięcie tak ważnego bezpieczeństwa, a większość z tych metod uważana jest za proste, ale bardzo skuteczne rozwiązania. Na przykład programista może użyć funkcji mysql_real_escape_string() lub przygotowanych instrukcji podczas pisania skryptów w języku preprocesora hipertekstowego (PHP). Metody wybrane do ochrony przed atakiem muszą być starannie przemyślane, ponieważ wydajności witryny jako całości nie można lekceważyć nawet podczas konfigurowania zabezpieczeń.