Вы планируете брать пользовательские данные и запускать их через LaTeX для генерации документов.Это потенциально еще один аспект проблемы безопасности использования неэкранированных пользовательских данных в качестве исполняемого кода.Это проблема со всем, что построено на основе архитектуры Тьюринга - данные и инструкции взаимозаменяемы.Без этого наши машины были бы менее мощными.
Итак, что нужно сделать пользователю, чтобы поставить под угрозу вашу систему?Им нужно будет найти способ компрометировать LaTeX на основе управления входами.Затем им потребуется способ повысить привилегии от пользователя LaTeX до любого уровня пользователя, который им потребуется для достижения своих целей.
Какими будут цели атакующего?Почему я хотел бы специально ориентироваться на вашу систему, по сравнению с гораздо более легкими, менее висящими фруктами?Планируете ли вы делать что-то еще на своем сайте, например, обработку платежей по кредитным картам, размещение секретных документов или оскорбление какого-либо религиозного / этнического / культурного меньшинства?На вашем месте я бы принял упомянутые вами меры предосторожности (низкоуровневая учетная запись пользователя) и, возможно, потратил бы 15 минут на размышления о целесообразности экранирования пользовательских данных в контексте LaTeX, а затем продолжил с этим.Никто не собирается тратить на вас время и ресурсы, если это не чисто академическое упражнение.Есть много вещей, которые были бы намного проще с более высокой отдачей.
Перейти на это.Если вы добьетесь успеха, то вы сможете реорганизовать свою систему для всех потребностей, которые вы изучили с первой сборкой.Если вы не добились успеха, и у вас нет ни пользователей, ни денег, ни каких-либо других показателей успеха, вы будете рады, что сэкономили так много времени на чрезмерной разработке проблемы.
Батлер Лэмпсон сказал: Планирую выбросить одну;ты все равно будешь.Если в функции системы есть что-то новое, первая реализация должна быть полностью переделана для достижения удовлетворительного (то есть, приемлемо небольшого, быстрого и поддерживаемого) результата.
Единственное единственноеВ дополнение к этому я бы сказал, маленький, быстрый, ремонтопригодный и безопасный .
Брайан Дж. Стинар