2014 dxdy logo

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

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




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

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

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

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

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

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

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

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

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

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

 
 
 
 Re: Опасности при обработке LaTeX
Сообщение06.08.2016, 00:45 
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
Сообщение06.08.2016, 12:46 
Lenchik, спасибо. По некоторым ссылкам уже попадал, но по некоторые нет, и они помогли лучше разобраться.

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

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


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