Питання на співбесіді з веб-безпеки (Junior) з відповідями
75 запитань для співбесіди з теми Веб-безпека (Junior) - з правильними відповідями, поясненнями й посиланнями на документацію.
Пройти цей тест- 1.Що означає тріада CIA в інформаційній безпеці?
- 2.Форма перевіряє в JavaScript, що вік - це число від 18 до 120. Чи досить цього, щоб захистити сервер?
- 3.Що таке OWASP Top 10?
- 4.Що означає принцип найменших привілеїв?
- 5.Що таке глибокий захист (defense in depth)?
- 6.Чому "безпека через приховування" (наприклад, секретна адреса адмінки) не є справжнім захистом?
- 7.Що таке межа довіри (trust boundary)?
- 8.Яким даним із браузера сервер може довіряти без перевірки?
- 9.Від чого захищає HTTPS?
- 10.Сторінка на HTTPS завантажує скрипт через звичайний
http://. Що зробить сучасний браузер? - 11.Що робить заголовок
Strict-Transport-Security(HSTS)? - 12.Чому форму входу ніколи не можна віддавати через звичайний HTTP?
- 13.Що гарантує значок замка в адресному рядку?
- 14.Що таке безпечний контекст (secure context) у браузері?
- 15.Чому браузер показує попередження на всю сторінку для недійсного чи самопідписаного сертифіката?
- 16.Що таке міжсайтовий скриптинг (XSS)?
- 17.Що таке збережений (stored) XSS?
- 18.Що таке відбитий (reflected) XSS?
- 19.Що таке DOM-based XSS?
- 20.Який рядок безпечно показує ім'я користувача в елементі?
- 21.Чому рендеринг
{comment.text}у JSX за замовчуванням безпечний щодо XSS? - 22.Який ризик несе
dangerouslySetInnerHTMLу React? - 23.Чому
<a href={user.website}>у React однаково може призвести до XSS? - 24.Що робить HTML-санітайзер, як-от DOMPurify?
- 25.Що таке кодування виводу (екранування) в контексті XSS?
- 26.Зловмисник отримав XSS на вашому сайті. Що зазвичай може його скрипт?
- 27.Який підхід до блокування XSS найнадійніший?
- 28.Що таке підробка міжсайтового запиту (CSRF)?
- 29.Чому CSRF можливий із сесіями на cookies?
- 30.Що таке CSRF-токен?
- 31.Чому GET-запит ніколи не має змінювати дані (наприклад,
GET /delete?id=5)? - 32.Що робить
SameSite=Laxдля cookie сесії? - 33.Чим
SameSite=Strictвідрізняється відLax? - 34.Чи бачить автор CSRF-атаки відповідь на підроблений запит?
- 35.Від якої атаки CSRF-токен НЕ захищає?
- 36.З яких частин складається origin адреси?
- 37.Чи однаковий origin у
https://app.example.comіhttps://api.example.com? - 38.Що забороняє політика того самого походження (same-origin policy)?
- 39.Що таке CORS?
- 40.
fetch('https://api.other.com/data')падає з помилкою CORS. Де це виправляють? - 41.Чи захищає CORS ваш API від зловмисників, які використовують curl чи скрипт на власному сервері?
- 42.Що таке preflight-запит CORS?
- 43.Чому сервер не може відповідати
Access-Control-Allow-Origin: *разом зAccess-Control-Allow-Credentials: true? - 44.Чим CORS відрізняється від CSRF?
- 45.Що робить атрибут cookie
HttpOnly? - 46.Що робить атрибут cookie
Secure? - 47.Який рядок
Set-Cookieнайкраще підходить для cookie сесії? - 48.Чому зберігати access token у
localStorageризиковано? - 49.Які дані ніколи не можна зберігати в
localStorage? - 50.Що таке ідентифікатор сесії і яким він має бути?
- 51.Що має статися із сесією, коли користувач виходить?
- 52.Чому одразу після входу треба видавати новий ідентифікатор сесії?
- 53.Чим автентифікація відрізняється від авторизації?
- 54.Як треба зберігати паролі в базі даних?
- 55.Що таке сіль у хешуванні паролів?
- 56.Чому форма входу має писати "Неправильний email або пароль", а не "Такого email не існує"?
- 57.Що таке багатофакторна автентифікація (MFA)?
- 58.Що таке credential stuffing?
- 59.Що найкраще допомагає проти перебору паролів на вході?
- 60.Що кажуть сучасні рекомендації (наприклад, NIST) про правила для паролів?
- 61.Як має працювати посилання "Забули пароль"?
- 62.Що таке passkey?
- 63.Що таке Content Security Policy (CSP)?
- 64.Що станеться з
<script>alert(1)</script>, вписаним у сторінку, заContent-Security-Policy: script-src 'self'? - 65.Що робить директива
default-src? - 66.Для чого
Content-Security-Policy-Report-Only? - 67.Чому
'unsafe-inline'уscript-srcтак сильно послаблює CSP? - 68.Що таке clickjacking?
- 69.Як заборонити іншим сайтам вбудовувати ваші сторінки у фрейми?
- 70.React-застосунку потрібен секретний API-ключ платіжного провайдера. Де він має бути?
- 71.Які змінні оточення в Next.js потрапляють у бандл для браузера?
- 72.Ви випадково запушили справжній API-ключ у публічний Git-репозиторій. Який перший правильний крок?
- 73.Що робить
npm audit? - 74.Чому lock-файл (
package-lock.json) треба комітити й у CI встановлювати залежності черезnpm ci? - 75.Чому докладні повідомлення про помилки зі стеком викликів небезпечні в продакшні?