Питання на співбесіді з веб-безпеки (Middle) з відповідями
75 запитань для співбесіди з теми Веб-безпека (Middle) - з правильними відповідями, поясненнями й посиланнями на документацію.
Пройти цей тест- 1.Значення екранується для HTML і вставляється в inline-скрипт:
<script>var q = '{{value}}';</script>. Чому це однаково небезпечно? - 2.Що з цього - приймач (sink) для DOM XSS?
- 3.Що з цього - типове джерело (source) для DOM XSS?
- 4.Чому
eval(userInput)чиnew Function(userInput)завжди небезпечні? - 5.Як щодо XSS із
v-htmlу Vue? - 6.Що робить
bypassSecurityTrustHtml()в Angular? - 7.Користувачі можуть завантажувати SVG-аватари, що віддаються з вашого основного домену. Який ризик?
- 8.Застосунок перетворює Markdown від користувачів на HTML. Що треба зробити перед вставкою результату в сторінку?
- 9.Чому "очищати на вході й зберігати чисту версію" менш надійно, ніж кодувати на виході?
- 10.Що додають Trusted Types до звичайного захисту від XSS?
- 11.Застосунок вставляє ім'я користувача в атрибут без лапок:
<div title={{name}}>. Чим це гірше за атрибут у лапках? - 12.Стан із серверного рендерингу вбудовується так:
<script>window.__STATE__ = ${JSON.stringify(state)}</script>. У чому проблема? - 13.Як працює CSP на основі nonce?
- 14.Що таке джерело CSP на основі хеша, як-от
'sha256-...'? - 15.Що робить
'strict-dynamic'уscript-src? - 16.Чому CSP на кшталт
script-src 'self' https://cdn.example.com https://www.google.comвважають слабкою? - 17.Від чого захищає
object-src 'none'? - 18.Чому сувора CSP має містити
base-uri 'none'(чи'self')? - 19.Яка директива CSP обмежує, куди можуть іти з'єднання
fetch, XHR і WebSocket? - 20.Чи однакова CSP, задана в тегу
<meta http-equiv>, і CSP в заголовку відповіді? - 21.Як зазвичай налаштовують CSP на основі nonce в Next.js?
- 22.Як збирати звіти про порушення CSP?
- 23.Чи повністю замінює
SameSite=LaxCSRF-токени? - 24.Що таке патерн double-submit cookie?
- 25.Як перевірка заголовка
Originдопомагає проти CSRF? - 26.Що повідомляє серверу заголовок запиту
Sec-Fetch-Site? - 27.API приймає лише
Content-Type: application/json. Чому це ускладнює класичний CSRF? - 28.Що таке login CSRF?
- 29.Застосунок автентифікує виклики API заголовком
Authorization: Bearerіз токеном у пам'яті, а не cookies. Чи актуальний CSRF? - 30.Чому CSRF-токени не варто класти в URL (наприклад,
?csrf=...)? - 31.Чому віддзеркалювати будь-який
Originзапиту вAccess-Control-Allow-Originразом із credentials небезпечно? - 32.Сервер дозволяє будь-який origin, що закінчується на
example.com. У чому вада? - 33.Чому
Access-Control-Allow-Origin: nullніколи не можна дозволяти з credentials? - 34.Який заголовок має додати сервер, коли відповідь залежить від
Originзапиту? - 35.Що регулює
Access-Control-Max-Age? - 36.Які заголовки міжсайтової відповіді фронтенд-код може прочитати за замовчуванням?
- 37.
fetchнадсилаєcredentials: 'include'на інший origin. Що ще потрібно, щоб браузер показав відповідь? - 38.Який запит НЕ викликає preflight CORS?
- 39.Із яких трьох частин складається JWT?
- 40.Чи секретний payload підписаного JWT (JWS)?
- 41.Що має перевірити сервер, отримавши JWT?
- 42.Що таке атака
alg: noneна JWT? - 43.Чому JWT важче відкликати, ніж серверні сесії?
- 44.Що таке ротація refresh-токенів?
- 45.Чому access-токени зазвичай живуть недовго (хвилини), а refresh-токени довше?
- 46.Що гарантує префікс назви cookie
__Host-? - 47.Які таймаути сесії рекомендовані?
- 48.Чому перед зміною email чи пароля варто знову запитати пароль?
- 49.Який потік OAuth 2.0 рекомендують сьогодні для односторінкового застосунку?
- 50.Яку проблему розв'язує PKCE?
- 51.Для чого параметр
stateв OAuth? - 52.Чому сервер авторизації має звіряти
redirect_uriточно із зареєстрованими значеннями? - 53.Чим ID-токен OIDC відрізняється від access-токена OAuth?
- 54.Що таке scopes в OAuth?
- 55.Чому браузерний застосунок не повинен тримати client secret OAuth?
- 56."Увійти через Google" повертає ID-токен вашому бекенду. Що має перевірити бекенд?
- 57.Що таке IDOR (insecure direct object reference)?
- 58.Кнопку адміна сховано в інтерфейсі для звичайних користувачів. Чи це контроль доступу?
- 59.Що таке mass assignment?
- 60.Чим RBAC відрізняється від ABAC?
- 61.Чому політика авторизації "заборонено за замовчуванням" безпечніша?
- 62.Мультитенантний SaaS фільтрує дані за
tenantIdз тіла запиту. Який ризик? - 63.Як запобігти SQL-ін'єкції?
- 64.Що таке NoSQL-ін'єкція, наприклад у MongoDB?
- 65.Який виклик Node.js найнебезпечніший із даними від користувача?
- 66.Що таке prototype pollution?
- 67.Як запобігти path traversal в ендпоїнті завантаження файлів?
- 68.Що таке server-side template injection?
- 69.Що робить
X-Content-Type-Options: nosniff? - 70.Який ризик зменшує заголовок
Referrer-Policy? - 71.Для чого
Permissions-Policy? - 72.Що дає додавання сайту до HSTS preload list?
- 73.Що робить
Cross-Origin-Resource-Policy: same-origin? - 74.Сторінка входу після успіху перенаправляє на
?next=. Як цим можна зловживати? - 75.Що має перевіряти обробник події
messageдляpostMessage?