我的网站拥有不同的用户,拥有不同的图片,这些图片都存储在同一个文件夹中。图像以增量方式存储,1.jpg,2.jpg等。 用户可以在特定的php页面上查看这些图片。现在我想通过这个php页面限制对这些图像的访问,这样他们就可以简单地枚举所有文件名来查看其他用户的图像。
我想用.htaccess
文件做这件事,该文件存储在/shop/img/userimg/
中的图像旁边,看起来像这样:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/shop/shop.php [NC]
RewriteRule .*\.(jpe?g|gif|bmp|png)$ - [F]
我的网站是一个子网站(如您所见:/ shop /),用于查看这些图像的php页面将是shop.php
。
现在,这有可能吗?我做错了什么?
答案 0 :(得分:2)
请注意,referer标头不受信任。一些代理和防火墙完全删除标题,因此您必须考虑它不存在(这是第二行的用途)
RewriteCond %{HTTP_REFERER} !/shop/shop\.php$ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule \.(jpe?g|gif|bmp|png)$ - [F,L]
答案 1 :(得分:1)
尝试将以下内容添加到htaccess文件中。
RewriteEngine On
RewriteBase /
#if the referer (page request came from) does not contain shop.php
RewriteCond %{HTTP_REFERER} !/shop/shop\.php [NC]
#and it is a request for images, then send a 403 forbidden
RewriteRule \.(jpe?g|gif|bmp|png)$ - [F,L]