总结:
何为盗链?
A网站引用B网站的图片。
什么叫防盗链?
防盗链就是要防止A网站引用B网站上的图片。
rz —— 上传图片到指定域名 (输入以后就会自动有个对话框弹出选择上传的图片,会上传到linux当前选定目录,为了后期能应用这个图片需要上传到域名对应的虚拟机配置文件夹里)
sz + 文件名 —— 把文件推送(下载)到windows上
没有的话yum安装一下 lrzsz
ls查看一下,图片已经上传成功了(上传到了linux虚拟机配置文件夹)
mv 重命名一下图片
可以直接通过 域名 / 1.png 来访问
在bbs上使用之前blog上传的图片
然后bbs发的帖子就可以引用使用这个图片
这样bbs的引用就产生了blog网站的带宽,blog的所有者被迫多出了流量,流量可是要钱的啊
因为是blog上的图片被引用了,所以现在需要在blog网站上做防盗链设置
对那个域名做防盗,需要在域名对应的虚拟主机配置上去设置。
防盗链的配置(红色部分),
和静态文件不记录日志,缓存时间(黄色部分)属于同是静态文件类型,可以写在一起。
location ~ \.(png|gif|jpeg|bmp|mp3|mp4|flv)$
{
valid_referers none blocked server_names *.aming.com;
if ($invalid_referer) {
return 403;
}
}
(if 后面需要有一个空格才到左括号)
valid_referers :白名单,就是允许访问的情况 (上面是列了4条约束)
一、none 指的是空referer(A网站跳到B网站,B网站日志里的refer就是网站跳之前的那个网址 ,none就是不经过跳转的直接访问的网址,这样的网址referer就是空。这样的无跳转的访问本身就是正常访问。 )
二、blocked 非法的链接(合法的比如http:// 或者https:// 开头的,如果没有这个开头的就是非法的)
(这里是把非法开头的也列为白名单,作为合格的域名可以访问,比如直接输入 www.XXXX.com 并没带http://)
三、server_names 就是文件里定义的
四、其他符合约束格式的域名
(这里是 *.aming.com , 则必须是符合 XXXXX.aming.com 这种格式的才是允许访问的域名)
invalid_referer :黑名单
这里设计的黑名单返回的就是403。拒绝访问。
重新刷新下bbs,可见引用不成功了,图片无法显示
测试防盗链还有一个办法
curl -I -e “请求的网址A” 被引用的网站B (通过A去访问B)
-e 指定自定义的referer , 就是通过请求的网址A 去访问 被引用的网站B。
域名没有加入hosts 要 –x 指定一下IP
可见是403状态
用白名单上的域名测试,返回状态就是200