← Усі теми

Питання на співбесіді з веб-безпеки з відповідями

XSS, CSRF, CSP і CORS на практиці, cookies і сесії, автентифікація з JWT, OAuth і passkeys, авторизація, ін'єкції, заголовки безпеки й ланцюжок постачання.

225 запитань для співбесіди з теми Веб-безпека з відповідями й поясненнями - рівні Junior, Middle і Senior. Приклади запитань, онлайн-тести й задачі на код.

Запитання за рівнями

Приклади запитань

Кілька запитань із кожного рівня з правильною відповіддю й поясненням.

Веб-безпека · Junior

  1. Що означає тріада CIA в інформаційній безпеці?

    Правильна відповідь: Конфіденційність, цілісність, доступність

    Конфіденційність означає, що дані бачать лише ті, кому можна, цілісність - що їх не змінюють без дозволу, а доступність - що система працює, коли потрібна. Більшість атак б'є щонайменше по одній із трьох.

  2. Форма перевіряє в JavaScript, що вік - це число від 18 до 120. Чи досить цього, щоб захистити сервер?

    Правильна відповідь: Ні: зловмисник може оминути сторінку й надіслати будь-який запит напряму, тому сервер теж мусить перевіряти

    Перевірка на клієнті потрібна для зручності. Будь-хто може надіслати запит через curl чи DevTools, тому кожне важливе правило треба перевірити ще раз на сервері.

  3. Що таке OWASP Top 10?

    Правильна відповідь: Список найкритичніших ризиків безпеки вебзастосунків, який регулярно оновлюють

    OWASP (Open Worldwide Application Security Project) публікує Top 10 як документ для підвищення обізнаності. Серед пунктів - порушений контроль доступу, ін'єкції та помилки конфігурації.

  4. Що означає принцип найменших привілеїв?

    Правильна відповідь: Кожен користувач, сервіс чи токен отримує лише ті права, які потрібні для його роботи, і не більше

    Якщо скомпрометовано акаунт чи ключ із мінімальними правами, шкода обмежена. Наприклад, користувач бази для звіту лише на читання не повинен мати змоги видаляти таблиці.

Усі 75 запитань з відповідями →

Веб-безпека · Middle

  1. Значення екранується для HTML і вставляється в inline-скрипт: <script>var q = '{{value}}';</script>. Чому це однаково небезпечно?

    Правильна відповідь: HTML-екранування не захищає контекст рядка JavaScript; значенню потрібне JS-кодування або інший спосіб передавання

    Кожен контекст має свої правила екранування. Найбезпечніше його уникати: покласти дані в атрибут data- чи JSON-блок і прочитати зі свого скрипту.

  2. Що з цього - приймач (sink) для DOM XSS?

    Правильна відповідь: element.insertAdjacentHTML()

    Приймачі розбирають рядки як HTML чи код: innerHTML, outerHTML, insertAdjacentHTML, document.write, eval, setTimeout(string) і властивості URL, що приймають javascript:.

  3. Що з цього - типове джерело (source) для DOM XSS?

    Правильна відповідь: location.hash

    Джерела - це значення, які контролює зловмисник: адреса (location, hash, search), document.referrer, дані postMessage і збережені значення від інших користувачів.

  4. Чому eval(userInput) чи new Function(userInput) завжди небезпечні?

    Правильна відповідь: Вони виконують будь-який рядок як код із правами сторінки

    Якщо будь-яка частина рядка надходить від користувачів, код контролюють вони. Сувора CSP теж блокує такі виклики, якщо не задано 'unsafe-eval'.

Усі 75 запитань з відповідями →

Веб-безпека · Senior

  1. У чому допомагає модель STRIDE?

    Правильна відповідь: Знаходити загрози за категоріями: підміна, втручання, відмова від дій, розкриття інформації, відмова в обслуговуванні, підвищення привілеїв

    Якщо пройти кожну категорію для кожного компонента й потоку даних, менше шансів пропустити цілий клас загроз.

  2. Коли моделювання загроз найкорисніше?

    Правильна відповідь: Під час проєктування, до того як архітектуру зафіксовано, і знову, коли вона суттєво змінюється

    Помилки проєкту, як-от довіра до ролі з клієнта, дешево виправити на дошці й дорого в продакшні.

  3. У чому головна ідея архітектури нульової довіри (zero trust)?

    Правильна відповідь: Жодної неявної довіри через розташування в мережі: кожен запит автентифікується й авторизується

    Перебування у VPN чи кластері не робить виклик довіреним. Сервіси перевіряють ідентичність і дозволи на кожен запит.

  4. Для чого використовують OWASP ASVS?

    Правильна відповідь: Це детальний перелік перевірюваних вимог безпеки, згрупованих за рівнями, для проєктування й тестування застосунків

    Top 10 підвищує обізнаність, а ASVS - це чекліст, з якого можна будувати вимоги й плани тестування.

Усі 75 запитань з відповідями →

Збірні тести з цією темою

Запитання з кількох тем одразу - як на співбесіді на конкретну вакансію.

Задачі на код

Напишіть рішення просто в браузері - тести перевірять його одразу. Класика співбесід на JavaScript (debounce, deepClone, Promise.all, LRU-кеш), на TypeScript (дженерики, звуження й утилітні типи, перевіряє справжній компілятор) і на React: компоненти й хуки на кшталт списку справ, вкладок, useDebounce та useInterval.

Відкрити задачі →