Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Что такое доступность (accessibility)?
Доступность (accessibility) — это практика создания веб-сайтов, которые могут использовать все пользователи, включая людей с ограниченными возможностями. Это включает улучшения, такие как использование правильных заголовков, текста для экранных читалок, цветовые контрасты и навигация с клавиатуры. Цель — обеспечить доступ к информации и функциональности всем пользователям, независимо от их возможностей.
Что такое ARIA (Accessible Rich Internet Applications), и как правильно использовать атрибуты ARIA для улучшения доступности?
ARIA (Accessible Rich Internet Applications) — это набор атрибутов, который помогает разработчикам улучшать доступность сложных веб-приложений для людей с ограниченными возможностями. Атрибуты ARIA могут быть добавлены к HTML-элементам, чтобы описать их роли, состояния и свойства для экранных читалок и других вспомогательных технологий. Например, атрибуты ARIA могут помочь определить, что элемент является кнопкой или заголовком, и предоставить информацию о его состоянии (например, "раскрыто" или "закрыто"). Правильное использование ARIA делает контент более понятным и доступным для всех пользователей.
Как вы понимаете Web Accessibility (веб-доступность) и почему она важна?
Web Accessibility (веб-доступность) означает, что веб-сайты и приложения должны быть доступны для использования людьми с различными ограничениями, такими как нарушения зрения, слуха или подвижности. Это важно, так как делает интернет доступным для всех пользователей, включая тех, кто использует специальные устройства, такие как экранные читалки.
Что такое attr_reader, attr_writer, attr_accessor и зачем они?
attr_reader создает геттер, attr_writer — сеттер, а attr_accessor — оба метода. Они позволяют упрощенно создавать методы для работы с переменными экземпляра.
Как на фронтенде реализуется авторизация? (Хранение access/refresh токенов в Cookies / LocalStorage, отправка токена в запросах, обновление токена)
Access token хранится в памяти или LocalStorage для доступа к API. Refresh token хранится в HttpOnly cookie для безопасного обновления. Токен автоматически добавляется в заголовки запросов и обновляется при истечении.
Как обеспечивается безопасность при компрометации access/refresh токенов?
Какие виды JWT-токенов применяются (access, refresh, id)?
В чём разница между access token и refresh token?
Где рекомендуется хранить access token и refresh token и почему?
Как должен вести себя frontend при истечении срока действия access token?
Рейтинг:
2
Сложность:
7
Безопасность при компрометации токенов обеспечивается коротким временем жизни access-токенов (минуты/часы), использованием refresh-токенов с возможностью отзыва, ведением blacklist скомпрометированных токенов и отслеживанием подозрительной активности. При обнаружении компрометации все токены пользователя немедленно отзываются.
Рейтинг:
5
Сложность:
4
Access-токен нужен для запросов к API, Refresh-токен — для продления access-токена, ID-токен — для передачи информации о пользователе. Они выполняют разные функции и используются в механизмах авторизации.
Рейтинг:
5
Сложность:
7
Access token используется для доступа к API и имеет короткий срок жизни. Refresh token нужен для получения нового access token и живёт дольше. Access token отправляется часто, refresh token — редко. Потеря access token менее критична, чем утечка refresh token. Поэтому refresh token защищают строже.
Рейтинг:
5
Сложность:
8
Access token обычно хранится в памяти приложения или в JavaScript-переменной. Refresh token рекомендуется хранить в httpOnly cookies. Такое разделение снижает риск XSS-атак. Frontend не должен хранить оба токена в localStorage. Безопасность хранения напрямую влияет на устойчивость приложения.
Рейтинг:
5
Сложность:
7
При истечении access token frontend должен попытаться обновить его с помощью refresh token. Пользователь не должен замечать этот процесс. Если обновление прошло успешно, запрос повторяется. Если нет — пользователь разлогинивается. Такой сценарий обеспечивает плавный пользовательский опыт.
Рейтинг:
2
Сложность:
4
Рейтинг:
2
Сложность:
5
Рейтинг:
3
Сложность:
7
Рейтинг:
3
Сложность:
5
Рейтинг:
3
Сложность:
8