我想知道,我已经为 wordpress 制作了一个 php 插件,它要求作为图像存储。如果您登录,您会看到分配给您的文件。然后你点击下载,它会下载它们。
问题是,如果您知道 URL,则无论如何都可以下载图像。如果他们知道图像的唯一 URL,我如何轻松阻止用户下载图像,而只允许具有登录权限的人查看它。
我的想法是:
- 某种检查引用 URL 的 HTACCESS hack
- 一种 KEY 系统,仅在提供密钥的情况下才允许下载文件。
任何信息或想法都会非常有用,谢谢。
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com/.*$ [NC]
RewriteRule \.(gif|jpg|js|css)$ - [F]
请务必将“mydomain.com”替换为您自己的。当指定文件类型的热链接发生时,上面的代码会创建一个失败的请求。如果是图像,则会显示损坏的图像。
如果您使图像对世界不可读(例如 www 目录之外的目录,或者只是使用 .htaccess 阻止它(无需进行推荐检查),您可以确保没有人可以访问您的图像。
getImage.php?imageid=xxxx
然后通过检查凭据的文件(例如 )提供您的图像,如果确定则读取图像(您的 php 进程可以读取图像,例如使用file_get_contents()
)然后提供它。
(使用正确的标题,你会没事的header("content-type: image/your_image_type");
:)
要保护文件,您可以执行以下两项操作之一
选项 1 主要用于人们存储文档签名等时,如果您无权访问此类文件夹(例如在共享托管环境等中),则可以使用选项 2。