我正在使用 PHP/MySQL 处理图片上传。我希望上传到登录用户图库的所有图像只能由登录用户访问。我不希望人们能够猜出文件名并直接链接到它。
我在想我可以将图像存储在 webroot 之外并通过一些 PHP 访问它们。但是,如果用户稍后想通过链接与 friend 分享图像,我将如何允许?
我是否需要采取任何其他步骤来确保只有用户才能看到他们的照片?我非常重视用户隐私,并希望做到这一点。
提前感谢您的帮助!
最佳答案
您最初的假设是正确的。将您的文件存储在公共(public)目录之外,并使用 PHP 脚本检查授权并显示图像。
要解决共享问题,您可以给他们一个区域,他们可以在其中说“共享这张照片”,它会显示如下 URL
http://www.yoursite.com/image/12390123?v=XA21IW
XA21IW 是一些存储在表中的唯一哈希,它们可以指定生命周期,或者您可以自己编写代码。当页面加载并传入 v 时,您可以查找一个表以确定它是否是该图像 ID 的有效哈希值。
您在这里有一些选择。每次他们点击“分享这张照片”时,您都可以:
- 销毁所有旧哈希
- 加入堆栈
- 允许他们配置到期时间等...
或者只是允许图像公开/私有(private)。
关于php - 如何保护用户上传到我网站的私有(private)照片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3815912/