【问题标题】:Can TeX code be safely executed from untrusted sources?可以从不受信任的来源安全地执行 TeX 代码吗?
【发布时间】:2009-01-21 22:01:50
【问题描述】:

MediaWiki 允许嵌入 TeX 数学代码,这些代码呈现为图像并发布到 Wiki 页面。这安全吗?如果允许不受信任的用户输入要由运行在 Web 服务器中的解释器执行的 TeX 程序,它是否会通过使用 TeX 解释器从服务器磁盘读取文件来打开服务器被黑客攻击?有没有办法安全地执行不受信任的 TeX 代码?

【问题讨论】:

    标签: web-applications latex tex trusted-vs-untrusted


    【解决方案1】:

    显然 TeX 能够通过正常操作打开和写入文件,这可能是一种攻击向量。将执行放入 sandbox 或 jail 应该可以解决这个问题。

    一定要disable\write18,它允许TeX 源文件执行操作系统命令。没有充分的理由允许这种机制。

    至于 TeX 解释器本身,我想说没有什么好担心的,因为它的错误数量可能是有史以来所有功能齐全的解释器中最不重要的。你的堆栈的其他部分将是一个更大的目标。

    【讨论】:

    • 确实存在允许 \write18 的原因——当然,对于受信任的文档。例如 dot2tex。
    【解决方案2】:

    如果您的 TeX 发行版使用 Kpathsea 库(它可能会使用),请参阅其文档中的 the Security section。

    【讨论】:

    • 一个很好的建议。听起来,TeX 不需要那么多文件来执行提问者建议的任务,但其他用途可能会打开相当多的主机系统。
    【解决方案3】:

    理论上是的。
    这取决于您的 TeX 解释器。如果在您使用的解释器中发现安全漏洞,并且该安全漏洞意味着用户可以执行任意代码,那么您就有问题了。

    【讨论】:

      猜你喜欢
      • 2011-08-23
      • 1970-01-01
      • 2020-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-14
      • 1970-01-01
      • 2019-08-23
      相关资源
      最近更新 更多