我使用的是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”。
问题:
- 我想防止直接在URL栏中显示为
http://localhost/test/sample.jpg
的图像。
注意:*我发现下面的解决方案在所有浏览器上测试都有效,但Firefox除外。*
7条答案
按热度按时间pgpifvop1#
尝试以下操作:
返回403,如果您直接访问图像,但允许它们在网站上显示。
**注意:**当您打开一些带有图像的页面,然后将该图像的路径复制到地址栏时,您可能会看到该图像,这只是因为浏览器的缓存,实际上该图像尚未从服务器加载 (来自Davo,下面的完整评论)。
u0njafvf2#
rosipov的规则工作得很好!
我用它在现场显示一个空白或特殊的消息;)代替直接访问文件的尝试,我宁愿从直接视图中保护一点。我认为这比403禁止更有趣。
因此,采用rosipov的规则将任何 direct 请求重定向到{gif,jpg,js,txt}文件到'messageforcurious':
我认为这是一种礼貌的方式,不允许直接访问,比如说,CMS * 敏感的文件 *,如xml,javascript......考虑到安全性:对于现在所有这些在网上涂鸦的机器人,我想知道他们的算法会从我的“好奇的消息”中得到什么。
4dbbbstv3#
根据您的评论,这似乎是您需要的:
我在我的本地主机上测试了它,它似乎工作正常。
gmol16394#
首先,找到主Apache的配置文件httpd.conf的位置,如果你使用Debian,它应该在这里:
/etc/apache/httpd.conf
。使用一些文件编辑器(如Vim或Nano)打开此文件,并找到如下所示的行:然后删除单词索引并保存文件。该行应该看起来像这样:
完成后,重启apache(例如Debian中的/etc/init.d/apache restart)。
1cklez4t5#
对我来说,这是唯一有效的方法,而且效果很好:
发现它在:
https://simplefilelist.com/how-can-i-prevent-direct-url-access-to-my-files-from-outside-my-website/
eoigrqb66#
iyr7buue7#
当我在我的Web服务器上使用它时,我只能重命名本地主机,像这样: