Web
September 13

PDF и SVG

Стандартная загрузка изображений на сайт, подразумевает работу с несколькими форматами изображений: jpg, gif, png. Они полностью безопасны, в условиях корректной настройки сервера.

Но очень-очень хочется загружать еще PDF и SVG, но нельзя.

Начнем с технических особенностей.

JPG, GIF и PNG можно обрабатывать стандартной библиотекой на сервере. Картинкам можно делать crop, менять размер, двигать их, накладывать и т.п. С PDF и SVG так не получится. Как загрузили, так и есть.

Но самый главный вопрос, это вопрос безопасности.

PDF – это очень сложный файл. В нем очень-очень много видов уязвимостей, которые настроены на взлом компьютера. Достаточно загрузить и открыть злой файл PDF и всё, вы потеряли доступ к компьютеру. Поэтому PDF мы запрещаем.

SVG – это по сути HTML документ. В нём прекрасно исполняется JavaScript, как и остальные тэги. Если этот файл потом будет просматривать админ из админки, это прямо волшебная дыра в безопасности.

Ни одно условие, ни один обработчик, не сможет спасти вас при загрузке PDF или SVG. Не нужно даже думать об этом. Поэтому для администратора, мы эти форматы редко-редко разрешаем, в случаях крайней необходимости, а для всех остальных пользователей – запрещаем.