Проверяет знание методов защиты данных в веб-хранилищах.
Полностью защитить LocalStorage от чтения/изменения сторонним JS нельзя, так как он доступен в том же контексте. Можно уменьшить риски: хранить только нечувствительные данные, использовать шифрование или HttpOnly-куки для критичной информации.
LocalStorage доступен всем скриптам на той же странице, поэтому злонамеренный код (например, XSS-атака) может прочитать или изменить его данные. Полной защиты нет, но можно снизить угрозы:
Не хранить конфиденциальные данные (токены, пароли) в LocalStorage.
Шифровать данные перед записью (например, с помощью CryptoJS).
Использовать HttpOnly-куки для критичных данных — они недоступны из JavaScript.
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"