3

我正在建立一个用户可以上传照片的网站,他们可以将它们标记为私人,所以没有人可以看到它们。

我知道如何在 php 中使用基于 ACL 的系统,但如果他们有图像文件的直接链接,任何人仍然可以访问这些照片。

例如:用户 1 想与用户 2 共享照片 A,因此他授予他访问权限。用户 2 右键单击​​图像,并复制其 url,例如“http://example.com/private123.jpeg”,并将其发送给用户 3。现在用户 3 可以看到他不应该看到的图像.

总而言之,我需要一种基于用户权限保护图像的方法,但仍然让它们快速加载(因此每次请求图像时运行一个 php 脚本都会被丢弃)。

apache可以吗?我在想也许我可以在用户登录时设置一个 cookie,然后让 apache 以某种方式检查它。我不在乎 cookie 是否可以伪造,99,99+% 的用户不知道如何做到这一点,而且照片不需要比这更高的安全性。

4

1 回答 1

7

将所有图像保存在它们自己的目录中,并在该目录中放置一个包含此内容的 .htaccess 文件

RewriteEngine On
RewriteCond %{HTTP_COOKIE} !^.*name-of-my-cookie.*$ [NC]
RewriteRule .* /whatever/page [NC,L]
于 2011-05-08T08:20:26.933 回答