我目前正在开发一个带有SSH连接的Web应用程序。
一个任务是我需要验证目录是否低于当前用户的htdocs-dir。
到目前为止,我所做的是检查目录字符串是否在字符串的开头有htdocs-part。 喜欢
“/ var / users / user / htdocs”就在前面 “的/ var /用户/用户/ htdocs中/ TESTDIR”
现在我正在进行渗透测试并输入
“的/ var /用户/用户/ htdocs中/ TESTDIR /../../../".
这是问题所在。我如何检查目录是否是另一个目录的第n级子目录
答案 0 :(得分:1)
您可以使用readlink
获取实际生成的路径:
mybox\> readlink -m /var/users/user/htdocs/testDir/../../../
/var/users
答案 1 :(得分:1)
您可以使用realpath:
find /var/users -path `realpath /var/users/user/htdocs/testDir/../..`
另外,它也适用于相对路径:
find `realpath dir` -path `realpath dir/htdocs/testDir/..`
答案 2 :(得分:1)
我会用
find /var/users/user/htdocs -path $(readlink -m /var/users/user/htdocs/testDir/../../../)