6b9a7636ae
F-CSV: ячейки экспорта писались «как есть» — значение вроде =HYPERLINK(...) или @SUM(...) в комментарии/контакте/городе при открытии файла в Excel/ LibreOffice исполнялось как формула (OWASP Formula Injection). Новый App\Support\CsvFormulaGuard::neutralize() префиксует апострофом ячейку, начинающуюся с = + - @ TAB CR. Применён к свободному тексту в: - DealExportController (телефон/источник/город/статус/комментарий) - DealsExportProvider (телефон/контакт/статус/проект/менеджер) Числовые колонки (id/суммы/даты) не трогаются — ведущий «-» там легитимен. TenantChargesController НЕ уязвим: колонки enum(CHECK)/число/дата, свободного текста нет. TDD: 13 unit-тестов хелпера + feature-тест экспорта сделок + provider-тест. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>