IIS和apache中怎样防止音频视频文件盗链?
时间:2010-03-23
来源:互联网
网上比较容易搜到的方法是用rewrite,判断HTTP请求中的referer和host是否一致
不过我试了一下,这种方法对图片盗链有效,但mp3这类的文件好像没有用
使用<img src="">这样是带有referer的,使用<object>和<embed>不带referer
那么一般用什么办法来防止MP3和wmv这样的音频视频被盗链和迅雷下载呢
apache和IIS分别使用什么方法最好??
------------------------------
另外,有没有办法限制一个网站中的指定文件的流量,比如只限制mp3,rar文件的流量,一个网站平时访问时流量不限制,但如果是加载或用下载软件下载其中的mp3,rar文件,就只能以有限的速度下载
这样可以做到吗
不过我试了一下,这种方法对图片盗链有效,但mp3这类的文件好像没有用
使用<img src="">这样是带有referer的,使用<object>和<embed>不带referer
那么一般用什么办法来防止MP3和wmv这样的音频视频被盗链和迅雷下载呢
apache和IIS分别使用什么方法最好??
------------------------------
另外,有没有办法限制一个网站中的指定文件的流量,比如只限制mp3,rar文件的流量,一个网站平时访问时流量不限制,但如果是加载或用下载软件下载其中的mp3,rar文件,就只能以有限的速度下载
这样可以做到吗
作者: number321 发布时间: 2010-03-23
apache 防盗链
防盗链原理:
http标准协议中有专门的字段记录referer
一来可以追溯上一个入站地址是什么
二来对于资源文件,可以跟踪到包含显示他的网页地址是什么。
因此所有防盗链方法都是基于这个Referer字段
主要有两种方法实现
第一种:使用FilesMatch
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot D:/www/www.chinahtml.com
ServerName www.aaa.com
ServerName aaa.com
盗用连接指定显示的页面。也可以不用此项,这样盗用连接也可无法使用。
ErrorDocument 404 http://www.chinahtml.com/error.html
允许www.aaa.com的网站使用
SetEnvIfNoCase Referer "^http://www.aaa.com" local_ref=1
允许 aaa.com 的网站使用
SetEnvIfNoCase Referer "^http://aaa.com" local_ref=1
定义防盗文件的扩展名
<FilesMatch "\.(gif|jpg|png|css|js|swf)">
Order Allow,Deny
Allow from env=local_ref 允许上面指定域名
</FilesMatch>
</VirtualHost>
防盗链设置样本:使用正则表达式
SetEnvIf Referer "^http://(.)+\.ilinux\.cn/" local_ref=1
SetEnvIf Referer "^http://(.)+\.isql\.cn/" local_ref=1
#SetEnvIf Referer "^http://(.)+\.other\.org\.cn/" local_ref=1
SetEnvIf Request_URI "/logo(.)+" local_ref=0
<FilesMatch "\.(mp3|wmv|png|gif|jpg|jpeg|avi|bmp|ram|rmvb|rm|rar|zip|mp3)">
Order Allow,Deny
Allow from env=local_ref
</FilesMatch>
解释:
1. 蓝色部分,表示设置允许访问的referer地址,第一行的意思为所有http协议访问,以.ilinux.cn结尾的域名地址,第二行类似,只是换成了.isql.cn,表问我前面的鬼符是什么,不懂得可以去翻正则表达式的研究文献,不想深究的可以照猫画虎设置自己的网站。
2. 绿色部分,表示不在上述引用域名范围内,但可以被放行的特例,本例中表示网站/目录,所有以logo开头的文件(用作允许其它网站的友情连接引用本站 logo)。
3. 橙色部分是设置反盗链的关键部分,上面每一个设置都联系到了local_ref这个环境变量,只有这个变量为1,则允许被引用,否则显示一个X。
4. 紫色部分设置了哪些扩展名的文件加入反盗链的规则。
第二种方法:
使用rewirte方式:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://bbs.ilinux.cn/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://bbs.ilinux.cn$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.ilinux.cn/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.ilinux.cn$ [NC]
RewriteCond %{HTTP_REFERER} !^http://ilinux.cn/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://ilinux.cn$ [NC]
RewriteRule .*\.(gif|jpg|jpeg|avi|bmp|ram|rmvb|rm|rar|zip)$ http://www.ilinux.cn [R,NC]
上面的,需要Rewrite模板.所有指定的文件,如果Referer不是上面的值,将被重定向到首页.
还有使用.htaccess 文件的方法,不过不推荐使用,影响apache性能。
写一个.htaccess
包括以下代码:
SetEnvIfNoCase Referer "^http://google\.com/" local_ref=1
<FilesMatch "\.(jpg)">
Order Allow,Deny
Allow from env=local_ref
Allow from 127.0.0.1
Allow from 123.123.123.123
</FilesMatch>
如果你的网址是www.myst.cn就改为
SetEnvIfNoCase Referer "^http://www\.myst\.com/" local_ref=1
<FilesMatch "\.(jpg)">
这意思是说防止人家连结你的jpg档案.可以增修为
<FilesMatch "\.(jpg|zip|rar)">
ps.最后一个不使用区各线
Allow from 127.0.0.1
这表示允许连结主机的IP。
你要是默认其他网站可以连结的话,就填入该主机IP,把上述的code储存为.htaccess然后放入你安装的目录下即可。
*nix系统在apache配置文件里面打开使用.htaccess功能。
AllowOverride All
防盗链原理:
http标准协议中有专门的字段记录referer
一来可以追溯上一个入站地址是什么
二来对于资源文件,可以跟踪到包含显示他的网页地址是什么。
因此所有防盗链方法都是基于这个Referer字段
主要有两种方法实现
第一种:使用FilesMatch
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot D:/www/www.chinahtml.com
ServerName www.aaa.com
ServerName aaa.com
盗用连接指定显示的页面。也可以不用此项,这样盗用连接也可无法使用。
ErrorDocument 404 http://www.chinahtml.com/error.html
允许www.aaa.com的网站使用
SetEnvIfNoCase Referer "^http://www.aaa.com" local_ref=1
允许 aaa.com 的网站使用
SetEnvIfNoCase Referer "^http://aaa.com" local_ref=1
定义防盗文件的扩展名
<FilesMatch "\.(gif|jpg|png|css|js|swf)">
Order Allow,Deny
Allow from env=local_ref 允许上面指定域名
</FilesMatch>
</VirtualHost>
防盗链设置样本:使用正则表达式
SetEnvIf Referer "^http://(.)+\.ilinux\.cn/" local_ref=1
SetEnvIf Referer "^http://(.)+\.isql\.cn/" local_ref=1
#SetEnvIf Referer "^http://(.)+\.other\.org\.cn/" local_ref=1
SetEnvIf Request_URI "/logo(.)+" local_ref=0
<FilesMatch "\.(mp3|wmv|png|gif|jpg|jpeg|avi|bmp|ram|rmvb|rm|rar|zip|mp3)">
Order Allow,Deny
Allow from env=local_ref
</FilesMatch>
解释:
1. 蓝色部分,表示设置允许访问的referer地址,第一行的意思为所有http协议访问,以.ilinux.cn结尾的域名地址,第二行类似,只是换成了.isql.cn,表问我前面的鬼符是什么,不懂得可以去翻正则表达式的研究文献,不想深究的可以照猫画虎设置自己的网站。
2. 绿色部分,表示不在上述引用域名范围内,但可以被放行的特例,本例中表示网站/目录,所有以logo开头的文件(用作允许其它网站的友情连接引用本站 logo)。
3. 橙色部分是设置反盗链的关键部分,上面每一个设置都联系到了local_ref这个环境变量,只有这个变量为1,则允许被引用,否则显示一个X。
4. 紫色部分设置了哪些扩展名的文件加入反盗链的规则。
第二种方法:
使用rewirte方式:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://bbs.ilinux.cn/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://bbs.ilinux.cn$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.ilinux.cn/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.ilinux.cn$ [NC]
RewriteCond %{HTTP_REFERER} !^http://ilinux.cn/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://ilinux.cn$ [NC]
RewriteRule .*\.(gif|jpg|jpeg|avi|bmp|ram|rmvb|rm|rar|zip)$ http://www.ilinux.cn [R,NC]
上面的,需要Rewrite模板.所有指定的文件,如果Referer不是上面的值,将被重定向到首页.
还有使用.htaccess 文件的方法,不过不推荐使用,影响apache性能。
写一个.htaccess
包括以下代码:
SetEnvIfNoCase Referer "^http://google\.com/" local_ref=1
<FilesMatch "\.(jpg)">
Order Allow,Deny
Allow from env=local_ref
Allow from 127.0.0.1
Allow from 123.123.123.123
</FilesMatch>
如果你的网址是www.myst.cn就改为
SetEnvIfNoCase Referer "^http://www\.myst\.com/" local_ref=1
<FilesMatch "\.(jpg)">
这意思是说防止人家连结你的jpg档案.可以增修为
<FilesMatch "\.(jpg|zip|rar)">
ps.最后一个不使用区各线
Allow from 127.0.0.1
这表示允许连结主机的IP。
你要是默认其他网站可以连结的话,就填入该主机IP,把上述的code储存为.htaccess然后放入你安装的目录下即可。
*nix系统在apache配置文件里面打开使用.htaccess功能。
AllowOverride All
作者: scyzxp 发布时间: 2010-03-23
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28