zoukankan      html  css  js  c++  java
  • 根据request请求头中的referer实现防盗链操作

    1.通俗理解

    通俗的来讲,跨站访问资源,被称为盗链。比如某一个商业网站,有很多自主版权的图片,自身展示用于商业目的。而另一个没有版权的网站,希望在自己的网站上面也展示这些图片,直接使用超链接到有版权的网站,这样以来,大量的客户端在访问有版权的网站时,实际上消耗了没有版权网站的流量,从而侵犯的有版权网站的利益。

    HTTP请求中会包含来自哪个url的点击来源,通过判断request请求头的referer是否来源于本站:

    我们就用优酷网站做示范

    if(referer != null){
    	//请求头中是否包含优酷网地址
    	if(referer.contains("www.youku.com")){
    	//正常访问
    	System.out.println("正在使用优酷正版资源");
    	}else{
    	//访问异常
    	System.out.println("请使用优酷网观看电影");
    	}
    }
    

    一般的站点或者静态资源托管站点都提供防盗链的设置,也就是让服务端识别指定的Referer,在服务端接收到请求时,通过匹配referer头域与配置,对于指定放行,对于其他referer视为盗链。

    这里的referer就是告诉请求响应者请求的引用页是谁,通过判断是否含有版权网站的地址名来达到防盗链的目的,然而这只是早期防盗链的机制之一。

    2.注意事项

    如果是从浏览器地址栏直接发起的请求,请求头中的referer参数为null,只有通过点击超链接访问资源时,这个参数才会有值。

    通过超链接访问的方式

    艾欧尼亚,昂扬不灭,为了更美好的明天而战(#^.^#)
  • 相关阅读:
    浪潮之巅阅读笔记
    人月神话阅读笔记3
    学习报告
    人月神话阅读笔记2
    学习报告
    第十一周学习总结
    软件杯项目——手写体识别
    第十周学习进度
    第九周学习进度
    《软件架构师的12项修炼》阅读笔记
  • 原文地址:https://www.cnblogs.com/lovelywcc/p/14394611.html
Copyright © 2011-2022 走看看