我正在一个网站上工作,有一些选项可以由用户指定可以查看媒体的个人图像的隐私设置。
我将设置更新为数据库,当用户指定的其他人访问包含媒体的页面时,PHP脚本不允许访问。这样很好。
现在,假设用户已允许其他用户“B”查看图像,但不允许用户“C”查看图像。
假设用户“B”从用户的个人资料中获取图像的URL(xyz.com/abc/xyz.jpg)并将其赋予“C”。现在,由于它是图像URL,因此用户“C”可以查看。在这种情况下,没有PHP脚本限制他。
我该如何处理这种情况?为了避免这种情况,可以设置任何barries吗?
(我知道这不是万无一失的,因为用户“B”无论如何都可以下载图像并将其发送给用户“C”,但我仍然想知道是否有任何方法可以做到这一点)
PS:媒体可以是任何东西。图像,视频,音频等
答案 0 :(得分:1)
(根据我在评论中发布的链接进行研究)
最简单的方法是使用readFile。
例如,我将名为hello.png
的文件上传到我自己的个人服务器。它位于根目录中,因此任何人都无法从网络访问它。
但是使用这个简单的PHP脚本:
<?php
header('Content-Type: image/png');
readfile('/hello.png');
?>
任何访问loltb.com/hello.php的人都可以看到我的形象。
要添加安全性,您必须使用会话数据来确定是否允许用户查看图像。完成后,代码将类似于:
if ($userAllowedToSeeImage)
{
header('Content-Type: image/png');
readfile('/hello.png');
}
else
{
echo("go away");
}
我之前看过像Dropbox这样的网站会这样做,但在我用Google搜索你的问题之前我还不能完全确定如何实现它。谢谢你帮我学习一些东西!