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

但是,当我复制网址并发送给其他人时:
https://fbcdn-sphotos-da.akamaihd.net/hphotos-ak-ash3/48062_4848804102040_906119890_n.jpg
其他人仍然可以访问该图像。Only Me所以,在 Facebook 的情况下,这并不是真正可以访问的图像。所以,如果我的图像或文件真的很重要,我可能会泄露信息。那么,我该如何避免这种情况呢?谢谢。
好的,问题来了,用户上传图片,并仅为该用户设置图片,如 facebook:

但是,当我复制网址并发送给其他人时:
https://fbcdn-sphotos-da.akamaihd.net/hphotos-ak-ash3/48062_4848804102040_906119890_n.jpg
其他人仍然可以访问该图像。Only Me所以,在 Facebook 的情况下,这并不是真正可以访问的图像。所以,如果我的图像或文件真的很重要,我可能会泄露信息。那么,我该如何避免这种情况呢?谢谢。
Facebook 需要身份验证(他们检查您的用户名和密码)和授权(他们检查图像是公开的,或者图像是给朋友的朋友的,而您是朋友的朋友,等等),然后他们才会给您图片的链接。
为了避免您所描述的情况,您需要在提供图像之前执行与提供 URL 之前相同的 auth/authz。
围绕图像包装这种保护通常(在 PHP 领域)通过将图像存储在 webroot 之外来完成,然后仅通过 PHP 脚本(执行 auth/authz,设置适当的内容类型标头)提供对它的访问,然后读取图像的字节并将它们输出到服务器以传递给浏览器)。
简单的方法:将 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);
}