У меня есть приложение, которое поддерживает экспорт таблицы как CSV. Мне нужно предотвратить возможность CSV-инъекций с помощью экспортированных CSV-файлов.
Когда я искал способ предотвратить инъекцию CSV, в большинстве мест было упомянуто, что для предотвращения инъекции CSV можно сделать предшествующее содержанию ячейки одинарную кавычку.
Например, следующий csv-контент откроет калькулятор при открытии в Excel.
a,=1+2+cmd|'/C Calc'!a0,c
Когда содержимое ячейки начинается с цитаты, калькулятор не открывается при открытии в Excel.
a,'=1+2+cmd|'/C Calc'!a0,c
Но, Excel показывает предыдущую цитату, когда выше CSV открывается с Excel. Таким образом, эффект тот же, если я использовал любой другой символ вместо кавычки.
Итак, что особенного в кавычках? Есть ли другой способ избежать инъекции CSV при отображении исходного содержимого ячейки при открытии в Excel?