Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: XSS, CSRF, Clickjacking, Cross-Site Scripting, Cross-Site Request Forgery

Какие клиентские уязвимости встречаются во frontend?

Вопрос проверяет знание основных типов уязвимостей в веб-приложениях на стороне клиента и понимание методов их предотвращения.

Короткий ответ

Основные клиентские уязвимости: XSS (межсайтовый скриптинг), CSRF (подделка межсайтовых запросов), Clickjacking (перехват кликов), небезопасное хранение данных (localStorage, cookies), утечки через Referer-заголовки. XSS позволяет внедрить вредоносный скрипт, CSRF — выполнить действие от имени пользователя. Защита: экранирование вывода, Content Security Policy, SameSite cookies, заголовок X-Frame-Options.

Длинный ответ

Основные клиентские уязвимости во frontend

Клиентские уязвимости — это проблемы безопасности, которые возникают на стороне браузера пользователя. Они могут привести к краже данных, выполнению несанкционированных действий или компрометации сессии. Наиболее распространённые типы: XSS, CSRF, Clickjacking и небезопасное хранение данных.

XSS (Cross-Site Scripting)

XSS позволяет злоумышленнику внедрить вредоносный JavaScript-код на страницу, которая затем выполняется в браузере жертвы. Различают три типа: отражённый (reflected), хранимый (stored) и DOM-based. Пример уязвимого кода:

// Уязвимый код: вставка пользовательского ввода напрямую в HTML
document.getElementById('output').innerHTML = userInput;

// Безопасный вариант: использование textContent
document.getElementById('output').textContent = userInput;

Защита: экранирование всех данных перед вставкой в HTML, использование Content Security Policy (CSP), избегание innerHTML, где возможно.

CSRF (Cross-Site Request Forgery)

CSRF заставляет браузер жертвы отправить запрос на целевой сайт от её имени, используя её куки. Например, злоумышленник размещает на своём сайте форму, которая отправляет POST-запрос на смену пароля. Защита: использование CSRF-токенов (уникальных для сессии), проверка заголовка Origin/Referer, установка атрибута SameSite для кук (Strict или Lax).

Clickjacking

Clickjacking скрывает целевой сайт в невидимом iframe, а пользователь думает, что кликает по элементам другого сайта. Защита: установка заголовка X-Frame-Options: DENY или SAMEORIGIN, использование Content Security Policy с директивой frame-ancestors.

Небезопасное хранение данных

Хранение чувствительных данных (токенов, паролей) в localStorage или sessionStorage делает их доступными для любого скрипта на странице. Рекомендуется использовать httpOnly куки для токенов, а localStorage — только для некритичных данных.

Вывод

Знание клиентских уязвимостей необходимо для написания безопасного кода. Применяйте экранирование, CSP, CSRF-токены и правильное хранение данных, чтобы минимизировать риски. Эти практики обязательны для любого frontend-разработчика, работающего с пользовательскими данными.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    4

  • Сложность:

    5

Навыки

  • JavaScript

    JavaScript

  • HTML

    HTML

Ключевые слова

#XSS

#CSRF

#Clickjacking

#Cross-Site Scripting

#Cross-Site Request Forgery

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию