Podczas programowania aplikacji internetowych w PHP łączących się z bazą danych MySQL, najlepszą praktyką mającą na celu bezwzględne zapobieganie atakom typu SQL Injection jest:
Podczas programowania aplikacji internetowych w PHP łączących się z bazą danych MySQL, najlepszą praktyką mającą na celu bezwzględne zapobieganie atakom typu SQL Injection jest:
Wyjaśnienie i uzasadnienie dydaktyczne
Poprawna odpowiedź: B (Stosowanie zapytań przygotowanych i parametryzowanych (Prepared Statements))
Instrukcje przygotowane (Prepared Statements) oddzielają strukturę kodu zapytania SQL od przesyłanych od użytkownika danych. W ten sposób silnik bazy danych traktuje parametry wyłącznie jako wartości tekstowe lub liczbowe, uniemożliwiając wykonanie wstrzykniętego złośliwego kodu SQL.
Opcja A jest niepoprawna, ponieważ funkcja md5() generuje skrót kryptograficzny tekstu i chroni hasła w bazie danych, lecz nie chroni samej struktury zapytań przed wstrzyknięciem. Opcja C jest niepoprawna, ponieważ strip_tags() służy do neutralizacji zagrożeń typu Cross-Site Scripting (XSS) poprzez czyszczenie kodu ze znaczników HTML. Opcja D jest niepoprawna, ponieważ walidacja e-maila zapewnia poprawność formatu danych wejściowych, ale nie zabezpiecza bezpośrednio interakcji z bazą danych.
Dlaczego pozostałe opcje są nieprawidłowe?
- A: Opcja
Szyfrowanie haseł użytkowników za pomocą funkcji md5()nie odpowiada prawidłowemu rozwiązaniu problemu opisanego w pytaniu. - C: Opcja
Usuwanie znaczników HTML przy pomocy funkcji strip_tags()nie odpowiada prawidłowemu rozwiązaniu problemu opisanego w pytaniu. - D: Instrukcja
Walidacja adresów e-mail przy użyciu funkcji filter_var()nie odpowiada logice wymaganego algorytmu lub operacji w skrypcie.
Chcesz poćwiczyć całą kwalifikację INF.03?
Egzamin próbny na czas, nauka działami, losowe pytanie albo przegląd całej bazy — wszystko w przeglądarce i bez zakładania konta.
Pojęcia z tego pytania
- Atak XSS (Cross-Site Scripting)Atak polegający na wstrzyknięciu złośliwego skryptu JavaScript do strony internetowej, który jest następnie wykonywany w przeglądarce ofiary.
- PDO (PHP Data Objects) i Prepared StatementsLekka, spójna warstwa abstrakcji dostępu do baz danych w PHP, zabezpieczająca aplikację przed atakami SQL Injection dzięki zapytaniom parametryzowanym.
- Silniki tabel MySQL (InnoDB vs MyISAM)Mechanizmy pamięci masowej w MySQL odpowiedzialne za sposób przechowywania, blokowania, indeksowania i przetwarzania danych w tabelach.
Podobne pytania z działu „Bezpieczenstwo aplikacji www”
Ten sam obszar materiału z kwalifikacji INF.03. W całej bazie znajdziesz 11 pytań z tego działu.
- #159
Wskaż dwa sposoby zabezpieczenia bazy danych Microsoft Access
- #161
Certyfikat SSL jest stosowany do
- #290
Aby stronę WWW można było przesłać do przeglądarki internetowej w postaci zaszyfrowanej, należy użyć protokołu
- #634
Witryna internetowa wysyła dane poufne za pomocą formularza do kodu PHP. Która metoda wysłania jest najbardziej bezpieczna?
- #940
Które z zadań programistycznych może być wykonane tylko po stronie klienta przeglądarki?