繁体   English   中英

如何防止用户通过URL查看图像?

[英]How to keep users from viewing images by URL?

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

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

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

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

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

通过fpassthru从php文件提供图像,以检查是否允许该用户

因此,例如,您可能有一个PHP文件getimage.php,该文件接受诸如“?image = mysecretimage.png”之类的查询字符串,如果允许用户,它将通过它。 如果您采用这种方式,请小心采取适当的预防措施,以确保仅通过图像文件。

可以通过HTTP身份验证来保护用户特定的URL。 在线上有示例 ,通过.htaccess修改完全有可能使您针对所有现有图像定制此方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM