想象一下,我的网站空间上有一个图片文件secretImage.png
,我希望有几个用户有权在index.php
上访问此图片。这很容易做到:
// index.php
if($userIsAllowed) echo '<img src="secretImage.png" />';
问题是,理论上用户可以通过直接浏览到www.myDomain.com/secretImage.png
来访问图像。有没有办法阻止他们这样做,以便只能在index.php
内查看图像?
答案 0 :(得分:0)
您可以使用htaccess通过.php文件路由特定文件夹的所有请求。在文件中,您可以确定用户是否可以查看该文件...如果是,则提供正确的标题和图像。如果没有,请显示您想要的任何内容(404,占位符图像)。
答案 1 :(得分:0)
HTTP调用GET /secretImage.png
本身应该要求身份验证。例如,您可以使用基本身份验证并让用户发送Authorization: {base64 user:password}
标头。
答案 2 :(得分:0)
通过fpassthru从php文件提供图像,您可以在其中检查是否允许用户
例如,你可能有一个php文件getimage.php,它接受一个像“?image = mysecretimage.png”这样的查询字符串,如果允许用户,它会通过它。如果你走这条路线,请小心采取适当的预防措施,只传递你的图像文件。
答案 3 :(得分:0)
可以通过HTTP身份验证保护用户特定的URL。有examples在线,完全有可能通过一些.htaccess摆弄你可以为所有现有图像量身定制这种方法。