0

好的,问题来了,用户上传图片,并仅为该用户设置图片,如 facebook:

在此处输入图像描述

但是,当我复制网址并发送给其他人时:

https://fbcdn-sphotos-da.akamaihd.net/hphotos-ak-ash3/48062_4848804102040_906119890_n.jpg

其他人仍然可以访问该图像。Only Me所以,在 Facebook 的情况下,这并不是真正可以访问的图像。所以,如果我的图像或文件真的很重要,我可能会泄露信息。那么,我该如何避免这种情况呢?谢谢。

4

2 回答 2

0

Facebook 需要身份验证(他们检查您的用户名和密码)和授权(他们检查图像是公开的,或者图像是给朋友的朋友的,而您是朋友的朋友,等等),然后他们才会给您图片的链接。

为了避免您所描述的情况,您需要在提供图像之前执行与提供 URL 之前相同的 auth/authz。

围绕图像包装这种保护通常(在 PHP 领域)通过将图像存储在 webroot 之外来完成,然后仅通过 PHP 脚本(执行 auth/authz,设置适当的内容类型标头)提供对它的访问,然后读取图像的字节并将它们输出到服务器以传递给浏览器)。

于 2013-04-22T10:58:26.653 回答
0

简单的方法:将 php 与会话一起使用,您将图像存储在公共目录之外,并在验证用户时使用 php-script 获取图像。

**getimg.php**
session_start();
if ($_SESSION['okToViewImage']) {
  $fn = $_GET['fn'];
  $type = explode('.',$fn);
  header('content-type: image/' . $fn[1]); 
  echo file_get_contents('dirOutsideWWWpubScope/'. $fn);
}
于 2013-04-22T11:06:10.110 回答