gpt4 book ai didi

php - 在 Hostgator jailed shell 上使用 PHP 创建 SYMLINK - Get Perm Denied 错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:28:31 24 4
gpt4 key购买 nike

所以我带着这个问题来找你:

吉文斯:

  1. 我有 Hostgator 作为 ISP。
  2. 我使用的是 PHP 5.5
  3. LINUX盒子是CENTOS
  4. 共享托管环境
  5. 我是一名专业编码人员,在 LAMP 方面有多年经验

问题:

  1. 我对 Jailed Shell 不熟悉,但有一个想法
  2. 我已经尝试过该脚本并一直在寻找答案
  3. 仍然卡住...

这是我当前的代码:

function getMyFakeDir($myfile) {

$target = "";
$link = 'content/purchased-items/link';
symlink($target, $link);

echo "READ LINK: ". readlink($link);

return readlink($link);

}

函数的调用如下:

$linkText = getMyFakeDir('SomePDFThatTheUserCanDownload.pdf');

然后我将那个“$linkText”变量传递给 PHPMailer 和 wala!!!用户通过 Symlink 点击下载,我写了一段代码让它在 24 小时后过期。是的,我是从 PHP.net 得到的。

所以,基本上这就是我的问题....

这是错误:

Warning: symlink(): Permission denied in /homeSomewhere/someMasterDir/public_html/webServices/somePHPFile.php on line 654

这是上面的链接 654:
符号链接(symbolic link)($目标,$链接);

谢谢...

最佳答案

想通了......简单的逻辑!

首先,我的路径全错了。这是更正后的代码:

//Generate Symbolic Link that blows away a fake directory each time
//A symbolic Link is created to "THIS" file below
$filename = $myfile;
//This is ANY directory on the server...
//A randomly named directory is created here...STEP 1
$downloaddir = "/home/someHostDir/public_html/sldktrulwiu2555ivd0fjvdfgdfgdfgdf/";
//Any directory NOT accessible by a browser - This is one level up
$safedir = "/home/someHostDir/content/purchased-items/";
//This is the equivalent of the $downloaddir and the browser is REDIRECTED here and the download begins
$downloadURL = "http://www.theSomeDomain.com/sldktrulwiu2555ivd0fjvdfgdfgdfgdf/"; //THIS IS THE FAKE DIRECTORY (Which I simply type gobbligook and created that mess above)
$letters = 'abcdefghijklmnopqrstuvwxyz';
srand((double) microtime() * 1000000);
$string = '';
for ($i = 1; $i <= rand(4, 12); $i++) {
$q = rand(1, 24);
$string = $string . $letters[$q];
}

$handle = opendir($downloaddir);
while ($dir = readdir($handle)) {
if (is_dir($downloaddir . $dir)) {
if ($dir != "." && $dir != "..") {
@unlink($downloaddir . $dir . "/" . $filename);
@rmdir($downloaddir . $dir);
}
}
}
closedir($handle);
mkdir($downloaddir . $string, 0777);
symlink($safedir . $filename, $downloaddir . $string . "/" . $filename);
//Header("Location: " . $downloadURL . $string . "/" . $filename);

差不多就可以了。

结果是“/sldktrulwiu2555ivd0fjvdfgdfgdfgdf/”目录中的动态目录,如下所示:“dfsgss/”和文件所在真实位置的“快捷方式”。然后,当文件下载完毕,页面返回到 INDEX.HTML 时,代码会清除 FAKE 目录,再也看不到了。因此,如果用户想返回,他们会收到文件/已被移动或删除的可怕的 404 PAGE 错误。无赖。

就是这样,伙计们。感谢您的帮助,是您帮助我解除了错误。团队合作!

关于php - 在 Hostgator jailed shell 上使用 PHP 创建 SYMLINK - Get Perm Denied 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30820846/

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