我有2台服务器-Web服务器和数据服务器,所有上传的文件都在哪里。htaccess中是否有任何选项可以阻止数据服务器中的所有访问,但允许来自该Web服务器的请求?
示例:Web服务器:包含视频,音频,...和数据服务器的门户,所有文件都上传到哪里。我需要阻止直接从“数据服务器/文件”(以及所有子文件夹)下载(访问)所有这些文件,但是我需要通过来访问这些文件,例如通过<video src="dataserver/file"></video>
,这是从Web服务器调用的(男人来到我的网站,想看看电影/音频/ ...)
访问者的浏览器在解析<video>
标签时将直接向您的数据服务器发出请求。您的Web服务器不参与其中。但是,您想要防止的事情(在网络术语中称为“热链接”)是可能的。
基本上,每个浏览器请求都附加有一个Referer字段(如果有),该字段使服务器知道用户来自哪个网站。例如,假设您打开浏览器并转到google.com
,则Google会在没有引荐来源的情况下收到您的请求,因为这是您在该浏览器标签中打开的第一个网站。
但是,当您搜索并单击链接以访问网站时,该服务器将收到您单击链接以到达作为HTTP Referer请求标头传递给该网站的Google页面的完整URL 。
因此,在您的数据服务器上,您可以使用.htaccess来确保客户端仅通过检查其引荐标头即可从您的网站发出视频请求。就像是
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_REFERER} !^http://(www\.)?webserver\.com/.*$ [NC]
RewriteRule \.(swf|flv|mp4)$ - [F,L]
这也将阻止用户仅在浏览器中输入视频URL,以希望直接下载它。热链接器现在将收到403 Forbidden错误。
但是,这确实有可能破坏您的网站,让安装了某种隐私软件的用户浏览该站点,该软件会剥夺引荐来源字段的每个浏览器请求。所以,这就是您的权衡。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句