我在php中编写一个Web应用程序,用户可以上传自己的文件或图像,但是如何保护这些文件不被所有者以外的其他人访问.想想dropbox,保护这些文件的机制是什么,我试图搜索但是没有得到任何关于此的信息.任何指针或指向教程的任何链接都非常有用.提前致谢.
如果要存储的图像和文件在数据库中的二进制块,那么它就是简单地检索和显示数据库之前核对登录的用户权限的问题.
如果您将它们存储为常规文件,您需要做的是将它们存储在网站的文档根目录之上,而不能在网络上公开访问它们.然后要检索图像,在检查数据库中的正确所有权后(我们不知道您的体系结构,因此替代您存储了属于谁的内容),PHP可以检索文件并使用正确的标头将其发送到浏览器.
例如,要显示图像:
// Check permissions...
// If permissions OK:
$img = file_get_contents("/path/to/image.jpg");
// Send jpeg headers
header("Content-type: image/jpeg");
// Dump out the image data.
echo $img;
exit();
Run Code Online (Sandbox Code Playgroud)
例如,您可以保留与用户ID匹配的文件名数据库表,以跟踪谁拥有什么.