使用场景:明明引用了一个正确的图片地址,但显示出来的却是一个红叉或写有“此图片仅限于***网站用户交流沟通使用”之类的“假图片”。用嗅探软件找到了多媒体资源的真实地址用下载软件仍然不能下载。下载一些资源时总是出错,如果确认地址没错的话,大多数情况都是遇上防盗链系统了。常见的防盗链系统,一般使用在图片、音视频、软件等相关的资源上。
实现原理:把当前请求的主机与服务器的主机进行比对,如果不一样则就是恶意链接,反之则是正常链接。
不说了,直接上代码:
String address=request.getHeader("referer"); //获取页面的请求地址 String pathAdd=""; //定义空字符串 if(address!=null){ //判断当前的页面的请求地址为空时 URL urlOne=new URL(address);//实例化URL方法 pathAdd=urlOne.getHost(); //获取请求页面的服务器主机 } String address1=request.getRequestURL().toString(); //获取当前页面的地址 String pathAdd1=""; if(address1!=null){ URL urlTwo=new URL(address1); pathAdd1=urlTwo.getHost(); //获取当前服务器的主机 } if(!pathAdd.equals(pathAdd1)){ //判断当前页面的主机与服务器的主机是否相同 }