如何解决java项目中的防盗链

  介绍

本篇文章给大家分享的是有关如何解决java项目中的防盗链,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

<强>一。防盗链的概念

内容不在自己的服务器上,通过技术手段将其他网站的内容(比如一些音乐,图片,软件的下载地址)放置在自己的网站中,通过这种方法盗取其他网站的空间和流量。

<强>二。防盗链的产生

一般情况下,http请求时,一个完整的页面并不是一次全部传送到客户端的。如果请求的是一个带有许多图片和其它信息的页面,那么最先的一个http请求被传送回来的是这个页面的文本,然后通过客户端的浏览器对这段文本的解释执行,发现其中还有图片,那么客户端的浏览器会再发送一条http请求,就这样一个完整的页面也许要经过发送多条http请求才能够被完整的显示。基于这样的机制,就会产生一个问题,那就是盗链问题:就是一个网站中如果没有起页面中所说的信息,例如图片信息,那么它完全可以将这个图片的连接到别的网站。这样提高自己访问量的同时,加大了对别人服务器的负载。

<强>三。Http中的引用页

Http推荐人是头的一部分,当浏览器向web服务器发送请求的时候,一般会带上推荐人,告诉服务器我是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理。

<强>四。Java解决防盗链

我们可以设置一个过滤器,拦截所有请求,在外部请求过来时提取出http中的推荐人,然后再进行判断,如果是本网站的来源,那么允许访问,否则拒绝。

public  void 的doFilter (ServletRequest 请求,ServletResponse 反应,FilterChain 链),   ,,,,,throws  IOException, ServletException  {,   ,,,,,HttpServletRequest  req =, (HttpServletRequest),请求,,   ,,,,,HttpServletResponse  resp =, (HttpServletResponse),反应;,   ,,,,,String  referer =, req.getHeader (“referer");,   ,,,,,如果(null  !=, referer ,,, referer.trim () .startsWith (“http://localhost: 8080/dstn")) {,   ,,,,,,,,System.out.println(“正常页面请求“),,   ,,,,,,,,chain.doFilter(点播,resp);,   ,,,,,其他}{,   ,,,,,,,,System.out.println(“盗链“),,   ,,,,,,,,req.getRequestDispatcher (“/html/error.html") forward格式(点播,resp);,   ,,,,,},   ,}

以上就是如何解决java项目中的防盗链,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

如何解决java项目中的防盗链