Безопасность

10 вопросов

Безопасность веб-приложений на Go: криптография (crypto/rand, bcrypt), защита от SQL-инъекций, JWT-токены, TLS/HTTPS, CORS, CSRF, XSS, rate limiting и управление секретами.

1 Почему пакет math/rand небезопасен для генерации токенов и паролей? 🟢 Лёгкий
Ответ: B) Генерирует предсказуемую последовательность на основе начального seed

math/rand детерминирован: при одном seed выдает одну и ту же последовательность, поэтому предсказуем для злоумышленника.

Подробнее →
2 Где безопаснее хранить секреты (пароли БД, API-ключи) в Go-приложении? 🟢 Лёгкий
Ответ: B) В переменных окружения или секрет-менеджере, не в коде и не в репозитории

Секреты не должны попадать в код и репозиторий; переменные окружения и секрет-менеджеры позволяют задавать их при запуске.

Подробнее →
3 Почему для хеширования паролей рекомендуют bcrypt, а не SHA256? 🟡 Средний
Ответ: B) bcrypt настраиваемо медленный и устойчив к перебору; SHA256 слишком быстрый

bcrypt настраиваемо медленный и с солью; SHA256 слишком быстрый и без встроенной соли, что упрощает перебор.

Подробнее →
4 Как в Go надежно защититься от SQL-инъекций при работе с базой данных? 🟡 Средний
Ответ: C) Использовать параметризованные запросы (плейсхолдеры)

Параметризованные запросы передают данные отдельно от текста запроса, поэтому они не могут изменить его структуру.

Подробнее →
5 Из каких частей состоит JWT и как их обычно проверяют на сервере? 🟡 Средний
Ответ: B) Header.Payload.Signature; проверяют подпись и при необходимости exp, iss

JWT: Header.Payload.Signature. Проверяют подпись (HMAC или ключ для RSA) и при необходимости поля exp, iss в payload.

Подробнее →
6 Как в Go включить TLS (HTTPS) для HTTP-сервера? 🟡 Средний
Ответ: B) Передать пути к сертификату и ключу в ListenAndServeTLS

ListenAndServeTLS(addr, certFile, keyFile, handler) запускает сервер с TLS, используя указанные файлы сертификата и приватного ключа.

Подробнее →
7 Что такое CORS и зачем он нужен? 🟡 Средний
Ответ: B) Политика браузера, ограничивающая кросс-доменные запросы и разрешающая их через заголовки сервера

CORS - политика браузера: по умолчанию скрипт с одного домена не может читать ответы запросов на другой домен; сервер явно разрешает это заголовками.

Подробнее →
8 Что такое CSRF и как от него защищаться в веб-приложении? 🟡 Средний
Ответ: A) Атака через подмену запроса с другого сайта; защита - токены в формах и проверка Origin/Referer

CSRF - запрос от имени пользователя с чужого сайта; защита - непредсказуемый токен в форме и проверка Origin/Referer.

Подробнее →
9 Зачем нужен rate limiting и как его обычно реализуют в Go? 🟡 Средний
Ответ: B) Чтобы ограничить частоту запросов от клиента и защититься от DDoS и злоупотреблений

Rate limiting ограничивает число запросов в единицу времени по клиенту (IP, ключ), защищая от DDoS и злоупотреблений.

Подробнее →
10 Как пакет html/template в Go защищает от XSS при выводе данных в HTML? 🟡 Средний
Ответ: B) Автоматически экранирует данные при выводе через {{.}} в зависимости от контекста

html/template при подстановке {{.}} по умолчанию экранирует вывод в зависимости от контекста (HTML, атрибут, JS).

Подробнее →
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.