Ответ
-
Критически важная логика на стороне клиента – например, валидация платежей. JS можно обойти, поэтому всегда дублируй проверки на бэкенде.
-
Сложные вычисления – сортировка больших массивов, обработка изображений. Это тормозит интерфейс. Лучше выносить в Web Workers или на сервер.
-
Хранение чувствительных данных – токены, пароли. LocalStorage/SessionStorage уязвимы для XSS. Используй HttpOnly куки.
-
Глубокая работа с файловой системой – чтение/запись файлов ограничены File API. Для серьёзных задач (например, резервное копирование) нужен бэкенд.
Пример плохого подхода:
// Ненадёжно! Легко подделать на клиенте
function processPayment(cardNumber) {
if (cardNumber.length === 16) {
// Отправляем платеж...
}
}