CSV Injection: как защитить экспорт от формул в таблицах
Почему пользовательские данные в CSV могут стать формулой при открытии в Excel или другом табличном редакторе и как выбрать безопасный экспорт.
Коротко о главном
- Чем опасно
- Непредусмотренное выполнение формул при открытии экспорта.
- С чего начать защиту
- Для чувствительных отчётов используйте формат с явно заданным текстовым типом ячеек.
- Как подтвердить
- Нужны ручной аудит и проверка реализации. Отсутствие находок во внешнем скане не подтверждает безопасность.
В этой статье
- Продукт
- Веб-приложения
- Оценка риска
- Уровень зависит от конфигурации
Как проверить и что учитывать
Нужна ручная проверка
Для подтверждения нужны анализ реализации и проверки на согласованном тестовом контуре. Публикация не означает автоматическое обнаружение этого сценария FindRisk. Не делайте вывод о наличии уязвимости только по одному внешнему признаку: подтвердите результат в настройках и версии компонента.
Что нужно для подтверждения
Откройте файл с безвредной тестовой формулой в поддерживаемых редакторах в изолированной среде без внешних обращений. Значение должно оставаться текстом, включая после сохранения и повторного открытия.
Ограничения вывода
- Внешний ответ не раскрывает все роли, обработчики и настройки внутренних компонентов.
- Используйте только свои системы или письменное разрешение владельца; нагрузочные проверки согласуйте отдельно.
Что это за уязвимость
Табличный редактор может интерпретировать содержимое ячейки как формулу, хотя приложение экспортировало обычный текст. Кавычки CSV разделяют поля, но не гарантируют текстовый тип ячейки.
Когда возникает риск
Риск зависит от редактора, его настроек и последующего пересохранения файла. Проверяйте поля, полученные от пользователей и внешних интеграций, включая скрытые управляющие символы.
Возможные последствия
Почему пользовательские данные в CSV могут стать формулой при открытии в Excel или другом табличном редакторе и как выбрать безопасный экспорт.
- Непредусмотренное выполнение формул при открытии экспорта.
- Искажение отчёта и возможные внешние обращения редактора.
Как защитить приложение
Исправляйте причину в обработчике, а не только внешний симптом.
- Для чувствительных отчётов используйте формат с явно заданным текстовым типом ячеек.
- Применяйте защиту формульных префиксов, проверенную для целевых редакторов; одно оборачивание в кавычки недостаточно.
- Проверяйте разделители и управляющие символы и документируйте ограничения совместимости.
Как безопасно проверить исправление
Откройте файл с безвредной тестовой формулой в поддерживаемых редакторах в изолированной среде без внешних обращений. Значение должно оставаться текстом, включая после сохранения и повторного открытия.
Оценка риска и границы сканирования
Средний уровень — ориентировочная редакционная оценка, не CVSS подтверждённой находки. Для конкретной системы приоритет зависит от доступных данных, полномочий и компенсирующих мер; последствия могут быть значительно серьёзнее.
Отсутствие находки во внешнем скане не доказывает безопасность реализации. Проверяйте сценарии после входа, альтернативные маршруты и внутренние сервисы.
Как проходит проверка
Для подтверждения нужны анализ реализации и проверки на согласованном тестовом контуре. Публикация не означает автоматическое обнаружение этого сценария FindRisk. Автоматический результат показывает внешний признак риска и требует проверки специалистом с учётом конкретной конфигурации.
Проверить другие внешние рискиЧто делать после обнаружения
- Зафиксируйте затронутый сценарий и сохраните журналы без токенов и персональных данных.
- Ограничьте проблемный обработчик, оцените доступные данные и назначьте владельца исправления.
- Устраните первопричину и добавьте регрессионную проверку на тестовых данных.
Частые вопросы
Что означает риск «CSV Injection»?
Почему пользовательские данные в CSV могут стать формулой при открытии в Excel или другом табличном редакторе и как выбрать безопасный экспорт.
Можно ли подтвердить проблему только внешней проверкой?
Для подтверждения нужны анализ реализации и проверки на согласованном тестовом контуре. Публикация не означает автоматическое обнаружение этого сценария FindRisk. Итог нужно сопоставить с конфигурацией, версиями и правами доступа на вашем сайте.
Что сделать в первую очередь?
Для чувствительных отчётов используйте формат с явно заданным текстовым типом ячеек.