Wstrzyknięcie SQL

Wstrzyknięcie SQL to forma cyberataku wymierzonego w witryny internetowe i aplikacje internetowe połączone z bazą danych. Ataki te wykorzystują nieprawidłowo skonfigurowane oprogramowanie serwera witryny internetowej i bazy danych, aby nakłonić serwer do przetworzenia instrukcji SQL, których w innym przypadku by nie wykonał. Ataki te mogą ujawnić poufne informacje osobowe i finansowe, umożliwić atakującemu zmianę lub usunięcie informacji przechowywanych w bazie danych albo zapewnić inny nieautoryzowany dostęp.

Witryna internetowa jest podatna na wstrzyknięcie SQL, gdy przyjmuje dane wprowadzane przez użytkownika w polu tekstowym formularza i dołącza je jako część zapytania SQL. Zamiast wypełnić pole formularza oczekiwaną informacją np. (nazwą użytkownika), atakujący wprowadza ciąg tekstowy, który modyfikuje zapytanie SQL. Na przykład hipotetyczne zapytanie może zaczynać się od SELECT UserID, Name, Password FROM Users WHERE UserID = , po którym następują dane wprowadzone w polu formularza identyfikatora użytkownika. Jeśli użytkownik wprowadzi swój identyfikator użytkownika, zapytanie działa zgodnie z oczekiwaniami i wyświetla jego informacje.

Atakujący wstrzykuje nieoczekiwany tekst do instrukcji zapytania, aby ją zmienić
Atakujący wstrzykuje nieoczekiwany tekst do instrukcji zapytania, aby ją zmienić

Jeśli jednak serwer wstawia tekst wprowadzony przez użytkownika do zapytania bez żadnych ograniczeń, atakujący może wykorzystać go do zmodyfikowania samej instrukcji zapytania SQL. Jeśli zamiast identyfikatora użytkownika ktoś wprowadzi tekst 317 OR 1=1, zapytanie przyjmie postać SELECT UserID, Name, Password FROM Users WHERE UserID = 317 OR 1=1;. Ponieważ OR 1=1 zawsze daje wynik prawdziwy, zastępuje identyfikator użytkownika; zapytanie zwraca zamiast tego identyfikatory użytkowników, nazwy i hasła wszystkich wpisów w tabeli Users. Inne rodzaje wstrzykiwania kodu mogą umożliwić atakującemu zalogowanie się jako administrator witryny, usunięcie rekordów lub tabel z bazy danych albo (w niektórych skrajnych przypadkach) wstrzyknięcie i uruchomienie powłoki skryptów oraz innego kodu.

Administrator witryny internetowej może zapobiegać atakom polegającym na wstrzyknięciu SQL, aktualizując oprogramowanie serwera. Ważne jest również „oczyszczanie” danych wejściowych bazy danych przez ograniczanie tekstu wprowadzanego przez użytkownika lub filtrowanie określonych znaków. Administratorzy witryn internetowych mogą także parametryzować zapytania SQL — używać w zapytaniu symboli zastępczych odnoszących się do danych wprowadzonych przez użytkownika zamiast wstawiać te dane bezpośrednio do zapytania.

Zaktualizowano March 20, 2023 przez Brian P.

quizSprawdź swoją wiedzę

What does "bootstrapping" refer to in software development?

A
Building software from the ground up
0%
B
Writing software for a new industry
0%
C
Running an app in a virtual machine
0%
D
Automatically loading and executing commands
0%
Correct! Incorrect!     View the Bootstrap definition.
More Quizzes →

Słownik komputerowy Tech Terms

Definicja Wstrzyknięcie SQL na tej stronie jest oryginalną definicją napisaną przez autorów TechTerms.com. Jeśli chcesz odwołać się do tej strony lub zacytować tę definicję, użyj zielonego paska cytowania bezpośrednio poniżej definicji.

Naszym celem jest wyjaśnianie terminologii komputerowej w prosty i zrozumiały sposób. Dążymy do dokładności i prostoty w każdej publikowanej definicji. Jeśli masz uwagi lub chcesz zaproponować nowy termin techniczny, skontaktuj się z nami.

Newsletter Tech Terms

Poszerzaj swoją wiedzę techniczną dzięki naszemu codziennemu lub tygodniowemu newsletterowi! Subskrybuj już dziś i otrzymuj nowe terminy oraz quizy prosto do skrzynki odbiorczej.

Zapisz się do bezpłatnego newslettera TechTerms

Jak często chcesz otrzymywać e-maile?

Możesz wypisać się lub zmienić częstotliwość w dowolnym momencie, korzystając z linków w każdym e-mailu. Pytania? Skontaktuj się z nami.

Uwaga: Newsletter jest wysyłany w języku angielskim.