Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Bazy danych Administracja serwerem i bezpieczeństwo

Słowa kluczowe: Administrator systemu bazy danych CREATE USER w MySQL GRANT w MySQL Zabezpieczenie serwera bazy danych Zapora sieciowa

Do zabezpieczeń aplikacji internetowej przed atakiem SQL Injection nie należy

A. minifikacja plików CSS.
Dobrze. Minifikacja CSS tylko zmniejsza rozmiar pliku stylów, nie chroni bazy.
B. walidacja danych przesyłanych z formularza.
Źle. Walidacja odrzuca nieoczekiwane dane, więc należy do zabezpieczeń.
C. ograniczenie uprawnień konta bazy danych, z którego korzysta aplikacja.
Źle. Minimalne uprawnienia ograniczają skutki udanego ataku.
D. stosowanie zapytań przygotowanych (prepared statements).
Źle. Zapytania przygotowane to najskuteczniejsza ochrona przed SQL Injection.
Minifikacja CSS usuwa z arkusza stylów spacje, komentarze i znaki nowej linii, żeby plik był mniejszy i szybciej się pobierał. To optymalizacja wydajności, która nie ma żadnego związku z bazą danych. SQL Injection polega natomiast na wklejeniu do pola formularza fragmentu zapytania, na przykład ' OR '1'='1, który zmienia sens polecenia SQL budowanego przez aplikację. Do zapamiętania: przed wstrzyknięciem chronią zapytania przygotowane, walidacja danych i minimalne uprawnienia konta bazy. W PHP zapytanie przygotowane tworzy się przez $pdo->prepare() albo mysqli_prepare(), a dane przekazuje się osobno, więc nie mogą stać się częścią polecenia.
Trzy pozostałe działania tworzą razem warstwową obronę przed SQL Injection. Zapytania przygotowane oddzielają treść polecenia od danych: serwer najpierw otrzymuje szablon z miejscami na wartości, a potem same wartości, więc wpisany tekst nigdy nie zostanie wykonany jako kod SQL - to najskuteczniejsza ochrona. Walidacja danych z formularza odrzuca wartości niezgodne z oczekiwaniami, na przykład litery w polu wieku. Ograniczenie uprawnień konta bazy zmniejsza szkody, gdy atak mimo wszystko się uda: konto aplikacji bez prawa DROP nie usunie tabel. Minifikacja plików CSS przyspiesza ładowanie strony, ale nie ma wpływu na zapytania wysyłane do bazy danych. Dobrą praktyką jest też niewyświetlanie użytkownikowi szczegółowych komunikatów błędów bazy, bo podpowiadają atakującemu strukturę tabel. Plik CSS trafia do przeglądarki użytkownika i w ogóle nie uczestniczy w komunikacji aplikacji z bazą danych.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.