[英]How to prevent a file from direct URL Access?
我正在使用 Apache,并且我的本地主机上有一个示例 Web 文件夹,例如:
http://localhost/test/
test
文件夹中的文件:
index.html
sample.jpg
.htaccess
index.html
示例来源:
<html>
<body>
<img src="sample.jpg" />
</body>
</html>
当我在http://localhost/test/
运行网站时,它只会在页面上显示图像“sample.jpg”。
问题:
http://localhost/test/sample.jpg
。注意:我发现以下解决方案在除 Firefox 之外的所有浏览器上进行测试时都有效。
请尝试以下操作:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost.*$ [NC]
RewriteRule \.(gif|jpg)$ - [F]
返回 403,如果您直接访问图像,但允许它们在站点上显示。
注意:有可能当你打开一些带有图片的页面,然后将该图片的路径复制到地址栏中时,你可以看到该图片,这只是因为浏览器的缓存,实际上该图片尚未从服务器加载(来自达沃,完整评论如下) 。
罗西波夫的规则很好用!
我在实时站点上使用它来显示空白或特殊消息 ;) 代替对文件的直接访问尝试,我宁愿保护一些免于直接查看。 我认为它比 403 Forbidden 更有趣。
因此,按照 rosipov 的规则,将任何对 {gif,jpg,js,txt} 文件的直接请求重定向到 'messageforcurious' :
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domain\.ltd [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domain\.ltd.*$ [NC]
RewriteRule \.(gif|jpg|js|txt)$ /messageforcurious [L]
我认为这是一种礼貌的方式,禁止直接访问 CMS敏感文件,例如 xml、javascript ......并牢记安全性:对于当今所有这些在网络上乱写的机器人,我想知道他们的算法会从我的 '消息很奇怪'。
根据您的评论,这就是您所需要的:
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost/ [NC]
RewriteRule \.(jpe?g|gif|bmp|png)$ - [F,NC]
我已经在我的本地主机上测试过它,它似乎工作正常。
首先,找到主apache的配置文件httpd.conf所在的位置。 如果你使用 Debian,它应该在这里: /etc/apache/httpd.conf
。 使用诸如 Vim 或 Nano 之类的文件编辑器打开此文件并找到如下所示的行:
Options Includes Indexes FollowSymLinks MultiViews
然后删除单词索引并保存文件。 该行应如下所示:
Options Includes FollowSymLinks MultiViews
完成后,重新启动apache(例如Debian 中的/etc/init.d/apache restart)。 而已!
对我来说,这是唯一有效的方法,而且效果很好:
RewriteCond %{HTTP_HOST}@@%{HTTP_REFERER} !^([^@] )@@https?://\\1/.
重写规则 .(gif|jpg|jpeg|png|tif|pdf|wav|wmv|wma|avi|mov|mp4|m4v|mp3|zip?)$ - [F]
在以下位置找到它: https : //simplefilelist.com/how-can-i-prevent-direct-url-access-to-my-files-from-outside-my-website/
当我在我的 Web 服务器上使用它时,我只能重命名本地主机,如下所示:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com.*$ [NC]
RewriteRule \.(gif|jpg)$ - [F]
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost.*$ [NC]
RewriteCond %{REQUEST_URI} !^http://(www\.)?localhost/(.*)\.(gif|jpg|png|jpeg|mp4)$ [NC]
RewriteRule . - [F]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.