Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: куки, хранилище, security

Как защитить данные в LocalStorage от стороннего JS?

Проверяет знание методов защиты данных в веб-хранилищах.

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

Полностью защитить LocalStorage от чтения/изменения сторонним JS нельзя, так как он доступен в том же контексте. Можно уменьшить риски: хранить только нечувствительные данные, использовать шифрование или HttpOnly-куки для критичной информации.

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

LocalStorage доступен всем скриптам на той же странице, поэтому злонамеренный код (например, XSS-атака) может прочитать или изменить его данные. Полной защиты нет, но можно снизить угрозы:

  1. Не хранить конфиденциальные данные (токены, пароли) в LocalStorage.

  2. Шифровать данные перед записью (например, с помощью CryptoJS).

  3. Использовать HttpOnly-куки для критичных данных — они недоступны из JavaScript.

  4. Content Security Policy (CSP) — ограничивает выполнение сторонних скриптов.

Пример шифрования:

// Запись
const data = { user: "Alice" };
const encrypted = btoa(JSON.stringify(data)); // Base64 (небезопасно, лучше AES)
localStorage.setItem("safeData", encrypted);
// Чтение
const stored = localStorage.getItem("safeData");
const decrypted = JSON.parse(atob(stored));
console.log(decrypted.user); // "Alice"

Уровень

  • Рейтинг:

    4

  • Сложность:

    7

Навыки

  • JavaScript

    JavaScript

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

#куки

#хранилище

#security

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