security(errors): 5xx без утечки err.message клиенту
Шаг 0.7 плана production-готовности: - глобальный error handler: нейтральный текст + код инцидента, детали в лог - route-уровень: зачистка err.message/String(err) в 5xx по 12 файлам, оригинальные ошибки логируются с контекстом
This commit is contained in:
@@ -26,7 +26,7 @@ router.get('/api/forms/:id/offline-cache', authenticateToken, tenantIsolation, a
|
||||
res.json({ success: true, offlineCache: config });
|
||||
} catch (err: any) {
|
||||
console.error('[FORM-OFFLINE] get error:', err);
|
||||
res.status(500).json({ error: err.message || 'Ошибка получения настроек офлайн-кэша' });
|
||||
res.status(500).json({ error: 'Ошибка получения настроек офлайн-кэша' });
|
||||
}
|
||||
});
|
||||
|
||||
@@ -44,7 +44,7 @@ router.put('/api/forms/:id/offline-cache', authenticateToken, tenantIsolation, r
|
||||
res.json({ success: true, offlineCache: form.offlineCache });
|
||||
} catch (err: any) {
|
||||
console.error('[FORM-OFFLINE] put error:', err);
|
||||
res.status(500).json({ error: err.message || 'Ошибка обновления настроек офлайн-кэша' });
|
||||
res.status(500).json({ error: 'Ошибка обновления настроек офлайн-кэша' });
|
||||
}
|
||||
});
|
||||
|
||||
@@ -61,7 +61,7 @@ router.delete('/api/forms/:id/offline-cache', authenticateToken, tenantIsolation
|
||||
res.json({ success: true });
|
||||
} catch (err: any) {
|
||||
console.error('[FORM-OFFLINE] delete error:', err);
|
||||
res.status(500).json({ error: err.message || 'Ошибка отключения офлайн-кэша' });
|
||||
res.status(500).json({ error: 'Ошибка отключения офлайн-кэша' });
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user