← Wszystkie tematy

Pytania rekrutacyjne z bezpieczeństwa aplikacji webowych z odpowiedziami

XSS, CSRF, CSP i CORS w praktyce, ciasteczka i sesje, uwierzytelnianie z JWT, OAuth i passkeys, autoryzacja, wstrzykiwanie, nagłówki bezpieczeństwa i łańcuch dostaw.

225 pytań na rozmowę rekrutacyjną z tematu Bezpieczeństwo aplikacji webowych z odpowiedziami i wyjaśnieniami - poziomy Junior, Middle i Senior. Przykładowe pytania, testy online i zadania z kodu.

Pytania według poziomu

Przykładowe pytania

Kilka pytań z każdego poziomu z poprawną odpowiedzią i wyjaśnieniem.

Bezpieczeństwo aplikacji webowych · Junior

  1. Co oznacza triada CIA w bezpieczeństwie informacji?

    Poprawna odpowiedź: Poufność, integralność, dostępność

    Poufność oznacza, że dane widzą tylko uprawnione osoby, integralność - że nikt ich nie zmienia bez zgody, a dostępność - że system działa, gdy jest potrzebny. Większość ataków uderza w co najmniej jeden z tych trzech elementów.

  2. Formularz sprawdza w JavaScript, że wiek to liczba od 18 do 120. Czy to wystarczy, by chronić serwer?

    Poprawna odpowiedź: Nie: atakujący może pominąć stronę i wysłać dowolne żądanie bezpośrednio, więc serwer też musi walidować

    Walidacja po stronie klienta służy wygodzie użytkownika. Każdy może wysłać żądanie przez curl czy DevTools, więc każdą ważną regułę trzeba sprawdzić ponownie na serwerze.

  3. Czym jest OWASP Top 10?

    Poprawna odpowiedź: Regularnie aktualizowaną listą najpoważniejszych zagrożeń dla aplikacji webowych

    OWASP (Open Worldwide Application Security Project) publikuje Top 10 jako dokument budujący świadomość. Wśród pozycji są złamana kontrola dostępu, wstrzykiwanie i błędna konfiguracja.

  4. Co oznacza zasada najmniejszych uprawnień?

    Poprawna odpowiedź: Każdy użytkownik, usługa czy token dostaje tylko te uprawnienia, których potrzebuje do pracy, i nic więcej

    Gdy przejęte zostanie konto lub klucz z minimalnymi uprawnieniami, szkody są ograniczone. Na przykład użytkownik bazy do raportu tylko do odczytu nie powinien móc usuwać tabel.

Wszystkie 75 pytań z odpowiedziami →

Bezpieczeństwo aplikacji webowych · Middle

  1. Wartość jest kodowana dla HTML i wstawiana do skryptu inline: <script>var q = '{{value}}';</script>. Dlaczego to wciąż niebezpieczne?

    Poprawna odpowiedź: Kodowanie HTML nie chroni kontekstu tekstu w JavaScript; wartość wymaga kodowania dla JS lub przekazania w inny sposób

    Każdy kontekst ma własne reguły kodowania. Najbezpieczniej go unikać: umieść dane w atrybucie data- lub bloku JSON i odczytaj je ze swojego skryptu.

  2. Które z tego jest ujściem (sink) dla DOM XSS?

    Poprawna odpowiedź: element.insertAdjacentHTML()

    Ujścia parsują teksty jako HTML lub kod: innerHTML, outerHTML, insertAdjacentHTML, document.write, eval, setTimeout(string) i właściwości URL przyjmujące javascript:.

  3. Które z tego jest typowym źródłem (source) dla DOM XSS?

    Poprawna odpowiedź: location.hash

    Źródła to wartości kontrolowane przez atakującego: adres (location, hash, search), document.referrer, dane postMessage i zapisane wartości od innych użytkowników.

  4. Dlaczego eval(userInput) lub new Function(userInput) są zawsze niebezpieczne?

    Poprawna odpowiedź: Uruchamiają dowolny tekst jako kod z uprawnieniami strony

    Jeśli jakakolwiek część tekstu pochodzi od użytkowników, to oni kontrolują kod. Restrykcyjna CSP też blokuje takie wywołania, chyba że ustawiono 'unsafe-eval'.

Wszystkie 75 pytań z odpowiedziami →

Bezpieczeństwo aplikacji webowych · Senior

  1. W czym pomaga model STRIDE?

    Poprawna odpowiedź: W znajdowaniu zagrożeń według kategorii: podszywanie, manipulacja, wypieranie się, ujawnienie informacji, odmowa usługi, podniesienie uprawnień

    Przejście przez każdą kategorię dla każdego komponentu i przepływu danych zmniejsza szansę, że umknie cała klasa zagrożeń.

  2. Kiedy modelowanie zagrożeń jest najbardziej przydatne?

    Poprawna odpowiedź: Podczas projektowania, zanim architektura zostanie ustalona, i ponownie, gdy znacząco się zmienia

    Błędy projektowe, jak zaufanie do roli z klienta, tanio naprawia się na tablicy, a drogo na produkcji.

  3. Jaka jest główna idea architektury zero trust?

    Poprawna odpowiedź: Brak domyślnego zaufania wynikającego z położenia w sieci: każde żądanie jest uwierzytelniane i autoryzowane

    Bycie w VPN czy klastrze nie czyni wywołania zaufanym. Usługi sprawdzają tożsamość i uprawnienia przy każdym żądaniu.

  4. Do czego służy OWASP ASVS?

    Poprawna odpowiedź: To szczegółowa lista weryfikowalnych wymagań bezpieczeństwa, pogrupowanych według poziomów, do projektowania i testowania aplikacji

    Top 10 buduje świadomość, a ASVS to lista kontrolna, z której można tworzyć wymagania i plany testów.

Wszystkie 75 pytań z odpowiedziami →

Testy łączone z tym tematem

Pytania z kilku tematów naraz - jak na rozmowie rekrutacyjnej na konkretne stanowisko.

Zadania z kodu

Napisz rozwiązanie prosto w przeglądarce, a testy od razu je sprawdzą. Klasyka rozmów rekrutacyjnych z JavaScriptu (debounce, deepClone, Promise.all, cache LRU), z TypeScriptu (generyki, zawężanie i typy narzędziowe, sprawdza prawdziwy kompilator) i z Reacta: komponenty i hooki, takie jak lista zadań, zakładki, useDebounce i useInterval.

Otwórz zadania →