URL可用时的媒体隐私

时间:2015-11-16 22:55:22

标签: php security

我正在一个网站上工作,有一些选项可以由用户指定可以查看媒体的个人图像的隐私设置。

我将设置更新为数据库,当用户指定的其他人访问包含媒体的页面时,PHP脚本不允许访问。这样很好。

现在,假设用户已允许其他用户“B”查看图像,但不允许用户“C”查看图像。

假设用户“B”从用户的个人资料中获取图像的URL(xyz.com/abc/xyz.jpg)并将其赋予“C”。现在,由于它是图像URL,因此用户“C”可以查看。在这种情况下,没有PHP脚本限制他。

我该如何处理这种情况?为了避免这种情况,可以设置任何barries吗?

(我知道这不是万无一失的,因为用户“B”无论如何都可以下载图像并将其发送给用户“C”,但我仍然想知道是否有任何方法可以做到这一点)

PS:媒体可以是任何东西。图像,视频,音频等

1 个答案:

答案 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搜索你的问题之前我还不能完全确定如何实现它。谢谢你帮我学习一些东西!