Angular предоставляет несколько способов безопасного хранения данных на стороне клиента, с акцентом на защиту от XSS, CSRF и других типов атак.
localStorage и sessionStorage позволяют
сохранять данные между сеансами браузера или в течение одной сессии:
localStorage.setItem('token', encryptedToken);
const token = localStorage.getItem('token');
Для безопасности данные должны быть шифрованы, так как хранение в открытом виде делает их уязвимыми.
Создание сервисов для хранения и управления данными позволяет централизовать логику шифрования, декодирования и доступа к данным:
@Injectable({ providedIn: 'root' })
export class StorageService {
private key = 'app_data';
setData(data: any) {
const encrypted = btoa(JSON.stringify(data)); // базовое кодирование, можно заменить на AES
localStorage.setItem(this.key, encrypted);
}
getData(): any {
const stored = localStorage.getItem(this.key);
return stored ? JSON.parse(atob(stored)) : null;
}
clearData() {
localStorage.removeItem(this.key);
}
}
Для повышения безопасности рекомендуется использовать JWT-токены и шифрование на стороне клиента. Это снижает риск перехвата данных и обеспечивает контроль срока действия и прав пользователя.
Безопасное хранение данных в Angular — это комбинация правильного использования встроенных средств, сервисов для централизованного управления данными и методов шифрования, которые совместно снижают риск утечек и атак.