0

想象一下,我的 Webspace 上有一个图像文件secretImage.png,我希望多个用户有权访问index.php. 这很容易做到:

// index.php
if($userIsAllowed) echo '<img src="secretImage.png" />';

问题是,理论上用户仍然可以通过直接浏览来访问图像www.myDomain.com/secretImage.png。有什么办法可以阻止他们这样做,使图像只能在里面查看index.php

4

4 回答 4

0

通过fpassthru从 php 文件中提供图像,您可以在其中检查用户是否被允许

例如,您可能有一个 php 文件 getimage.php,它接受像“?image=mysecretimage.png”这样的查询字符串,如果用户被允许,它就会通过它。如果您走这条路,请注意采取适当的预防措施,仅通过您的图像文件。

于 2013-07-23T22:56:19.257 回答
0

可以通过 HTTP 身份验证保护用户特定的 URL。网上有一些例子,完全有可能通过一些 .htaccess 摆弄来为所有现有图像定制这个方法。

于 2013-07-23T23:11:56.340 回答
0

您可以使用 htaccess 通过 .php 文件路由对特定文件夹的所有请求。在文件中,您可以确定用户是否可以看到该文件...如果可以,请提供正确的标题和图像。如果没有,请显示您想要的任何内容(404,占位符图像)。

于 2013-07-23T22:52:49.653 回答
0

HTTP 调用GET /secretImage.png本身应该需要身份验证。例如,您可以使用基本身份验证并让用户发送Authorization: {base64 user:password}标头。

于 2013-07-23T22:53:17.700 回答