我计划开发一个可公开访问的界面,允许用户将git存储库推送到服务器,让服务器在存储库中编译latex源并返回生成的文件。我想知道的是我可能需要注意哪些安全问题?
目前的计划是:
答案 0 :(得分:2)
您计划获取用户数据,并通过LaTeX运行它以生成文档。这可能是使用未转义的用户数据作为可执行代码的安全问题的另一个方面。这是建立在图灵架构之上的任何问题 - 数据和指令是可以互换的。没有这个,我们的机器将不那么强大。
那么,用户需要做些什么来破坏您的系统?他们需要找出一种基于控制输入来妥协LaTeX的方法。然后,他们需要一种方法将特权从LaTeX用户升级到他们完成目标所需的任何用户级别。
攻击者的目标是什么?为什么我要专门针对您的系统,而不是更容易,更低挂果?您是否计划在您的网站上做其他事情,例如处理信用卡付款,托管机密文件或冒犯某种宗教/种族/文化少数群体?如果我是你,我会采取你提到的预防措施(低级别用户帐户),并且可能花15分钟考虑是否在LaTeX环境中转义用户数据是有意义的,然后继续使用它。除非是纯粹的学术练习,否则没有人会把时间和资源花在你身上。有更高的回报,有很多事情会容易得多。
去吧。如果您成功,那么您可以重新设计系统,以满足您在第一次构建时学到的所有需求。如果您没有成功,并且您没有任何用户,金钱或任何其他成功指标,那么您会很高兴您节省了大量时间来过度设计问题。
我要说的唯一的补充是小巧,快速,可维护和安全。
Brian J. Stinar
答案 1 :(得分:1)
你必须考虑到\ write18,因为它可以执行系统脚本!
答案 2 :(得分:0)
我认为编译乳胶文件时应考虑安全性,因为这篇文章似乎表明:http://johannes.sipsolutions.net/Projects/new-moinmoin-latex/security-considerations