Pytania rekrutacyjne z bezpieczeństwa aplikacji webowych (Middle) z odpowiedziami
75 pytań na rozmowę rekrutacyjną z tematu Bezpieczeństwo aplikacji webowych (Middle) - z poprawnymi odpowiedziami, wyjaśnieniami i linkami do dokumentacji.
Rozwiąż ten test- 1.Wartość jest kodowana dla HTML i wstawiana do skryptu inline:
<script>var q = '{{value}}';</script>. Dlaczego to wciąż niebezpieczne? - 2.Które z tego jest ujściem (sink) dla DOM XSS?
- 3.Które z tego jest typowym źródłem (source) dla DOM XSS?
- 4.Dlaczego
eval(userInput)lubnew Function(userInput)są zawsze niebezpieczne? - 5.Jak wygląda
v-htmlw Vue pod kątem XSS? - 6.Co robi
bypassSecurityTrustHtml()w Angular? - 7.Użytkownicy mogą wgrywać awatary SVG, serwowane z Twojej głównej domeny. Jakie jest ryzyko?
- 8.Aplikacja zamienia Markdown pisany przez użytkowników na HTML. Co musi się stać przed wstawieniem wyniku na stronę?
- 9.Dlaczego "czyść na wejściu i zapisz czystą wersję" jest mniej niezawodne niż kodowanie na wyjściu?
- 10.Co dodają Trusted Types do zwykłej ochrony przed XSS?
- 11.Aplikacja wstawia nazwę użytkownika do atrybutu bez cudzysłowów:
<div title={{name}}>. Czym to jest gorsze od atrybutu w cudzysłowach? - 12.Stan z renderowania po stronie serwera jest osadzany tak:
<script>window.__STATE__ = ${JSON.stringify(state)}</script>. Na czym polega problem? - 13.Jak działa CSP oparta na nonce?
- 14.Czym jest źródło CSP oparte na hashu, np.
'sha256-...'? - 15.Co robi
'strict-dynamic'wscript-src? - 16.Dlaczego CSP w rodzaju
script-src 'self' https://cdn.example.com https://www.google.comuważa się za słabą? - 17.Przed czym chroni
object-src 'none'? - 18.Dlaczego restrykcyjna CSP powinna zawierać
base-uri 'none'(lub'self')? - 19.Która dyrektywa CSP ogranicza, dokąd mogą iść połączenia
fetch, XHR i WebSocket? - 20.Czy CSP ustawiona w tagu
<meta http-equiv>działa tak samo jak w nagłówku odpowiedzi? - 21.Jak zwykle konfiguruje się CSP opartą na nonce w Next.js?
- 22.Jak zbierać raporty o naruszeniach CSP?
- 23.Czy
SameSite=Laxw pełni zastępuje tokeny CSRF? - 24.Czym jest wzorzec double-submit cookie?
- 25.Jak sprawdzanie nagłówka
Originpomaga przeciw CSRF? - 26.Co mówi serwerowi nagłówek żądania
Sec-Fetch-Site? - 27.API przyjmuje tylko
Content-Type: application/json. Dlaczego to utrudnia klasyczny CSRF? - 28.Czym jest login CSRF?
- 29.Aplikacja uwierzytelnia wywołania API nagłówkiem
Authorization: Bearerz tokenem w pamięci, a nie ciasteczkami. Czy CSRF jest problemem? - 30.Dlaczego tokenów CSRF nie należy umieszczać w adresach URL (np.
?csrf=...)? - 31.Dlaczego odbijanie dowolnego
Originżądania wAccess-Control-Allow-Originrazem z credentials jest niebezpieczne? - 32.Serwer dopuszcza każdy origin kończący się na
example.com. Na czym polega błąd? - 33.Dlaczego
Access-Control-Allow-Origin: nullnigdy nie powinien być dopuszczany z credentials? - 34.Jaki nagłówek powinien dodać serwer, gdy odpowiedź zależy od
Originżądania? - 35.Co kontroluje
Access-Control-Max-Age? - 36.Które nagłówki odpowiedzi z innego originu kod frontendu może domyślnie odczytać?
- 37.
fetchwysyłacredentials: 'include'do innego originu. Czego jeszcze trzeba, by przeglądarka udostępniła odpowiedź? - 38.Które żądanie NIE wywołuje preflightu CORS?
- 39.Z jakich trzech części składa się JWT?
- 40.Czy payload podpisanego JWT (JWS) jest tajny?
- 41.Co musi sprawdzić serwer po otrzymaniu JWT?
- 42.Czym jest atak
alg: nonena JWT? - 43.Dlaczego JWT trudniej unieważnić niż sesje po stronie serwera?
- 44.Czym jest rotacja refresh tokenów?
- 45.Dlaczego access tokeny zwykle żyją krótko (minuty), a refresh tokeny dłużej?
- 46.Co gwarantuje prefiks nazwy ciasteczka
__Host-? - 47.Jakie limity czasu sesji są zalecane?
- 48.Dlaczego przed zmianą e-maila lub hasła warto ponownie zapytać o hasło?
- 49.Który przepływ OAuth 2.0 jest dziś zalecany dla aplikacji jednostronicowej?
- 50.Jaki problem rozwiązuje PKCE?
- 51.Do czego służy parametr
statew OAuth? - 52.Dlaczego serwer autoryzacji musi dokładnie porównywać
redirect_uriz zarejestrowanymi wartościami? - 53.Czym różni się ID token OIDC od access tokenu OAuth?
- 54.Czym są scopes w OAuth?
- 55.Dlaczego aplikacja w przeglądarce nie powinna trzymać client secret OAuth?
- 56."Zaloguj przez Google" zwraca ID token do Twojego backendu. Co musi sprawdzić backend?
- 57.Czym jest IDOR (insecure direct object reference)?
- 58.Przycisk admina jest ukryty w interfejsie dla zwykłych użytkowników. Czy to kontrola dostępu?
- 59.Czym jest mass assignment?
- 60.Czym różni się RBAC od ABAC?
- 61.Dlaczego polityka autoryzacji "domyślnie zabronione" jest bezpieczniejsza?
- 62.SaaS z wieloma klientami (multi-tenant) filtruje dane po
tenantIdz treści żądania. Jakie jest ryzyko? - 63.Jak zapobiec SQL injection?
- 64.Czym jest NoSQL injection, np. w MongoDB?
- 65.Które wywołanie Node.js jest najgroźniejsze z danymi od użytkownika?
- 66.Czym jest prototype pollution?
- 67.Jak zapobiec path traversal w endpoincie pobierania plików?
- 68.Czym jest server-side template injection?
- 69.Co robi
X-Content-Type-Options: nosniff? - 70.Jakie ryzyko zmniejsza nagłówek
Referrer-Policy? - 71.Do czego służy
Permissions-Policy? - 72.Co daje dodanie strony do listy HSTS preload?
- 73.Co robi
Cross-Origin-Resource-Policy: same-origin? - 74.Strona logowania po sukcesie przekierowuje na
?next=. Jak można to wykorzystać? - 75.Co musi sprawdzać handler zdarzenia
messagedlapostMessage?