我正在尝试为经过身份验证的用户提供对其报告的访问权限。 使用以下代码我创建(取决于登录用户)这样的链接:
echo "<a href = 'http://127.0.0.1:8080/reports.php?file=XXXXXX.html'>Download Report Januar</a>";
这是一种保存方式吗?还是有更好的想法?
$dir = '/var/www/html/44ahj34k578adfhq238iqdn7VB/';
$type = 'text/html';
if(!empty($_GET['file']) && !preg_match('=/=', $_GET['file'])) {
if ($_SESSION['username'] == 'XXXXX') {
if(file_exists ($dir.$_GET['file'])) {
makeDownload($_GET['file'], $dir, $type);
}
} else {
die("sorry, but you are not my type.");
}
}
function makeDownload($file, $dir, $type) {
header("Content-Type: $type");
header("Content-Disposition: attachment; filename=\"$file\"");
readfile($dir.$file);
}
// File permissions:
// drwxr-xr-x 2 www-data root 4096 Mar 27 10:12 44ahj34k578adfhq238iqdn7VB
// -rw-r--r-- 1 www-data root 5056 Mar 27 10:13 XXXXX.html
答案 0 :(得分:0)
我注意到一些安全问题: