PDF и SVG
Стандартная загрузка изображений на сайт, подразумевает работу с несколькими форматами изображений: jpg, gif, png. Они полностью безопасны, в условиях корректной настройки сервера.
Но очень-очень хочется загружать еще PDF и SVG, но нельзя.
Начнем с технических особенностей.
JPG, GIF и PNG можно обрабатывать стандартной библиотекой на сервере. Картинкам можно делать crop, менять размер, двигать их, накладывать и т.п. С PDF и SVG так не получится. Как загрузили, так и есть.
Но самый главный вопрос, это вопрос безопасности.
PDF – это очень сложный файл. В нем очень-очень много видов уязвимостей, которые настроены на взлом компьютера. Достаточно загрузить и открыть злой файл PDF и всё, вы потеряли доступ к компьютеру. Поэтому PDF мы запрещаем.
SVG – это по сути HTML документ. В нём прекрасно исполняется JavaScript, как и остальные тэги. Если этот файл потом будет просматривать админ из админки, это прямо волшебная дыра в безопасности.
Ни одно условие, ни один обработчик, не сможет спасти вас при загрузке PDF или SVG. Не нужно даже думать об этом. Поэтому для администратора, мы эти форматы редко-редко разрешаем, в случаях крайней необходимости, а для всех остальных пользователей – запрещаем.