[英]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.