gpt4 book ai didi

javascript - 如何隐藏真实的图像路径(或撤销访问权限)?

转载 作者:行者123 更新时间:2023-11-28 03:18:09 26 4
gpt4 key购买 nike

我拥有一个网站,任何用户都可以上传他们日常生活的照片。为了简单起见,假设所有图像都位于以下路径中:

www.example.com/assets/img/<USER_ID>/<PHOTO_ID>.png

问题是,这允许任何人查看任何人的照片,这不是我想要的。例如,这里有一些 URL,任何人都可以访问并查看任何用户的照片(甚至可以运行脚本以从网站上获取所有照片):

www.example.com/assets/img/501/15631.png
www.example.com/assets/img/1375/78974.png
www.example.com/assets/img/2/52.png

如果用户没有关注该人,我该如何隐藏图片的真实路径或阻止用户查看该图片?

最佳答案

一般有两种方法:

  1. 最简单的方法:存储图像时,在文件名中添加一个“类似密码”的字符串(例如 15631_wCz3YiBZ5A2.png),这样就不太可能有人可以猜测现有文件的名称。

  2. 干净的方法:通过 PHP 文件或检查当前用户是否被允许查看文件的东西提供静态文件。它需要更多工作并给服务器带来更多负载,但它更安全、更灵活。这可能看起来像这样:

if (userMaySeeImage($imageId))
{
header('Content-Type: image/jpeg');
echo file_get_contents($imagePath);
exit;
}
else
{
die('Nice try, buddy.');
}

这当然只是一个通用示例,因为我对您的用户身份验证/授权机制一无所知,对您存储图像引用的方式一无所知。

例子中,userMaySeeImage是判断用户是否可以访问图片的函数或方法,$imageId是图片的唯一标识,$imagePath 是图片的绝对路径。

关于javascript - 如何隐藏真实的图像路径(或撤销访问权限)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26225903/

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