拒绝使用php访问无效用户的根目录中的文件

时间:2015-07-29 22:01:49

标签: php html

我有一个php网站。要访问某些页面,用户必须登录。如果未经过身份验证,我会包含一个重定向到登录页面的脚本。用户必须查找专门为他们制作的图像,其他用户不应该看到这些图像。 为了显示这些图像,我使用img标签,据我所知,它们需要位于根目录中。 有没有办法保护这些文件免受无效用户的侵害?

1 个答案:

答案 0 :(得分:0)

而不是链接到像<img src='1.jpg'/>这样的图像链接到一个检查用户登录的php并回显图像<img src='getimage.php?imageId=1'/>的字节...然后将它们放在某个不能直接处理的地方除了那个php页面。

//check if user is logged in
if(!loggedIn())
{
   echo 'not logged in';
   exit();
}
$id = $_GET['imageId'];
$file = ... //use that id to look in db for image path
$type = 'image/jpeg';
header('Content-Type:'.$type);
header('Content-Length: ' . filesize($file));
readfile($file);