Может ли код TeX безопасно выполняться из ненадежных источников?
MediaWiki позволяет встраивать математический код TeX, который отображается в изображениях и размещается на вики-страницах. Это безопасно? Если кто-то позволяет ненадежным пользователям вводить программы TeX для выполнения интерпретатором, работающим на веб-сервере, открывает ли он сервер для взлома с помощью интерпретатора TeX для чтения файлов с дисков сервера? Есть ли способ безопасно выполнить ненадежный код TeX?
3 ответа
Очевидно, что TeX может открывать и записывать файлы посредством нормальной работы, что является возможным вектором атаки. Помещение казни в песочницу или тюрьму должно позаботиться об этом.
Не забудьте отключить \write18
, который позволяет исходному файлу TeX выполнять команды ОС. Нет веских причин, чтобы разрешить этот механизм.
Что касается самого интерпретатора TeX, я бы сказал, что беспокоиться здесь практически нечего, так как он, вероятно, имеет наименьшее количество ошибок среди всех полнофункциональных интерпретаторов, когда-либо написанных. Другая часть вашего стека будет гораздо большей целью.
Если в вашем дистрибутиве TeX используется библиотека Kpathsea (вероятно, так и есть), см. Раздел "Безопасность" в своей документации.
В теории да.
Это зависит от вашего переводчика TeX. Если в интерпретаторе, который вы используете, обнаружено нарушение безопасности, и это нарушение безопасности означает, что пользователь может выполнить произвольный код, тогда у вас есть проблема.