2010-10-29 69 views
0

我有一个计划,开发一个公共访问接口,将允许用户将git存储库推送到服务器,并让服务器编译存储库中的乳胶源并返回生成的文件。我想知道的是我可能需要注意的安全问题?乳胶安全考虑

该计划迄今:

  • 使用一个单独的低权限的用户帐户来编译LaTeX的。
  • 由于每个项目都位于其自己的存储库中,编译将在其自己的子目录中发生,建议为here

回答

2

你服用的用户数据计划,而为了生成文档运行它通过乳胶。这是使用非转义用户数据作为可执行代码的安全问题的另一个方面。这是任何建立在图灵架构之上的问题 - 数据和指令是可以互换的。没有这个,我们的机器就不那么强大。

那么,用户需要做什么才能妥协你的系统呢?他们需要找出一种方法来控制LaTeX的投入。然后,他们需要一种方法将特权从LaTeX用户升级到他们需要实现其目标所需的任何用户级别。

攻击者的目标是什么?为什么我想专门针对你的系统,而不是更容易,更低的挂果?您是否打算在您的网站上做其他事情,例如处理信用卡付款,托管机密文件或冒犯某些宗教/民族/文化少数群体?如果我是你,我会采取你提到的预防措施(低级用户帐户),并花15分钟时间考虑在LaTeX环境下转义用户数据是否合理,然后继续。没有人会花时间和资源支持你,除非它是纯粹的学术活动。有很多事情会以更高的回报轻松得多。

去吧。如果您成功了,那么您可以重新设计您的系统,以满足您在第一次构建时学到的所有需求。如果你不成功,而且你没有任何用户,金钱或其他任何成功标准,那么你会很高兴你为过度设计问题节省了太多时间。

巴特勒·兰普森说:Plan to throw one away; you will anyhow. If there is anything new about the function of a system, the first implementation will have to be redone completely to achieve a satisfactory (that is, acceptably small, fast, and maintainable) result.

唯一除了这个,我想说的是体积小,速度快,维护和安全

布赖恩J. Stinar

1

你必须采取\ write18考虑,因为它可以执行系统脚本!

+0

我不太了解乳胶,但是如何防范呢?简单地解析输入并禁止包含这些内容的任何内容就足够了,或者可以使用其他LaTeX操作任意构建这样的字符串? – 2010-10-29 17:38:20

+0

您需要禁用\ write18运行。谷歌应该帮助! – Mica 2010-11-10 18:24:39