Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 Опасности при обработке LaTeX
Если код LaTeX поступает из ненадежного источника и обрабатывается, то возникают проблемы с безопасностью.

Например, командами \openin \read \openout \write можно открывать файлы, читать и писать в них.

Если ренедеринг происходит на веб сервере, то еще есть опасность введения команд, вызывающих зацикливание, например \loop \while.

Какие вообще есть потенциально опасные команды? Как их отключить или фильтровать? Как запретить latex читать и писать файлы вне определенной директории?

 Re: Опасности при обработке LaTeX
Допустим, есть фильтр запрещенных команд. Можно ли как-то его обойти, используя команды переопределения операторов, замены кодировок, склеивая операторы из кусочков строк? Какими командами это можно делать?

 Re: Опасности при обработке LaTeX
Аватара пользователя
(la)tex может исполняться с или без --shell-escape и во втором случае опасность возрастает т.к. \write18{сделай это} эквивалентна тому, что пользователь напечатает "сделай это" в терминале (консоли).

Разработчики пару лет назад внедрили набор исполняемых в терминале безопасных команд.

Некоторые редакторы тоже допускают подобный выход в терминал(напр. vi)

 Re: Опасности при обработке LaTeX
Red_Herring в сообщении #1142262 писал(а):
(la)tex может исполняться с или без --shell-escape и во втором случае опасность возрастает т.к. \write18{сделай это} эквивалентна тому, что пользователь напечатает "сделай это" в терминале (консоли).
Спасибо. Да, shell-escape я первым делом отключил. Но все равно есть возможность читать и писать файлы. Не подскажете, где найти полную документацию с описанием всех команд, в том числе и команд работы с файлами?

 Re: Опасности при обработке LaTeX
Такая конструкция
Используется синтаксис LaTeX
\def \x {\string\in}
\def \y {put\{myfile.txt\}}
\x\y
дает просто текст \input{myfile.txt}.
В принципе возможно ли подобным образом создать команду и далее ее выполнить?

 Re: Опасности при обработке LaTeX
https://tex.stackexchange.com/questions/tagged/security
https://tex.stackexchange.com/questions/262625/security-latex-injection-hack
https://tex.stackexchange.com/questions/100932/is-luatex-as-secure-as-pdftex
https://tex.stackexchange.com/questions/104433/xelatex-inside-chroot-jail
https://tex.stackexchange.com/questions/10418/how-can-i-safely-compile-other-peoples-latex-documents

 Re: Опасности при обработке LaTeX
Lenchik, спасибо. По некоторым ссылкам уже попадал, но по некоторые нет, и они помогли лучше разобраться.

Еще не совсем разобрался, как в конфиге полностью отключить shell escape. Встречаются варианты: shell_escape = 0, p, и даже y.

 [ Сообщений: 7 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group