关于java:JavaWeb利用Request制作防盗链

40次阅读

共计 941 个字符,预计需要花费 3 分钟才能阅读完成。

什么是盗链?

盗链是指服务提供商本人不提供服务的内容,通过技术手段绕过其它有利益的最终用户界面(如广告),间接在本人的网站上向最终用户提供其它服务提供商的服务内容,骗取最终用户的浏览和点击率。受益者不提供资源或提供很少的资源,而真正的服务提供商却得不到任何的收益。

如何避免盗链?
申请头中有一个 Referer 元素,如果失常通过 www.163.com 拜访这个新闻时, 则 Referer 为 163, 能够失常浏览新闻。如果后盾发现 Referer 不为 163,或者 Referer 为空,阐明为盗链浏览,此时网页会间接跳到 www.163.com 的主页上。

HTML 代码和跳转到对应新闻内容的 Servlet 代码:

163 主页:<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
      <h1> 网易新闻 </h1><hr>
      广告广告广告广告广告广告广告广告
      <a href="/Day04/servlet/RenzhengfeiServlet"> 任正非独家采访 </a>
      广告广告广告广告广告广告广告广告
  </body>
</html>

RenzhengfeiServlet:
public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=utf-8");
             String ref = request.getHeader("Referer");
// 如果 referer 为空或不为 163,则重定向回 163 的主页
             if(ref==null || "".equals(ref) || !ref.startsWith("http://www.163.com")){response.sendRedirect(request.getContextPath()+"/index.html");
                 return;
        }
             response.getWriter().write("任正非回顾.. 我和华为的时光......");
    }

正文完
 0