javaWeb防止恶意登陆或防盗链的使用

本文介绍了防盗链系统的应用场景及其实现原理。当从一个网站引用另一个网站的资源时,如图片或音视频,若非直接访问可能会遇到防盗链限制。文章通过示例代码展示了如何检查请求来源以判断是否为合法请求。

使用场景:明明引用了一个正确的图片地址,但显示出来的却是一个红叉或写有“此图片仅限于***网站用户交流沟通使用”之类的“假图片”。用嗅探软件找到了多媒体资源的真实地址用下载软件仍然不能下载。下载一些资源时总是出错,如果确认地址没错的话,大多数情况都是遇上防盗链系统了。常见的防盗链系统,一般使用在图片、音视频、软件等相关的资源上。

实现原理:把当前请求的主机与服务器的主机进行比对,如果不一样则就是恶意链接,反之则是正常链接。

不说了,直接上代码:

    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(pathAdd)){  //判断当前页面的主机与服务器的主机是否相同    
          }

 

转载于:https://my.oschina.net/sprouting/blog/1422888

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值