gpt4 book ai didi

c - 如何将用户监禁在目录中

转载 作者:太空宇宙 更新时间:2023-11-04 08:04:50 25 4
gpt4 key购买 nike

假设我有路径 /home/sn/stuff/。用户现在输入 ../secretStuff/secret.txt。现在用户位于 /home/sn/secretStuff 中,可以阅读其中的所有内容。

如何阻止这种情况发生?在用户输入的路径中不能容忍任何 .. 可以吗?

最佳答案

“越狱”的方式多种多样:

  • 进入不在 jail 内的绝对路径
  • 进入通往 jail 的相对路径
  • 以某种方式构建一个链接(软链接(soft link)、硬链接(hard link)、挂载...) jail 内到 jail 之外的东西(通过利用一些其他漏洞)
  • 我没有想到的(见评论)

由于您没有真正指定场景,因此很难说您正在寻找什么样的潜在漏洞,以及您希望在多大程度上避免它们。

至少,您应该对用户的输入进行健全性检查(例如使用 realpath ,这比您自己对用户输入进行字符串解析要可靠得多,并且涵盖绝对路径、相对路径和其中包含软链接(soft link)的路径一次)。

您可能希望禁止访问硬链接(hard link)(使用 fstat 并检查 nlink_t)。


根据所需的安全级别,您可能需要检查 chroot同样,这将允许您挑选用户甚至可以看到您的系统的内容。但这需要相当多的额外“管道”。

关于c - 如何将用户监禁在目录中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43604770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com