web页面防盗链功能使用--request.getHeader("Referer")

使用Request对象设置页面的防盗链

所谓的防盗链就是当你以一个非正常渠道去访问某一个Web资源的时候,服务器会将你的请求忽略并且将你的当前请求变为按正常渠道访问时的请求并返回到相应的页面,用户只有通过该页面中的相关操作去访问想要请求的最终资源。

例如,你有一个访问某资源的网址,但是你事先不知道这个网址是有防盗链的,那么当你输入该网址时你可能会发现,并没有马上跳转到你想要的资源页面而是一些无关的信息页面,但是就是在这些信息页面中你发现有一个超链接或是其他操作可以跳转到你所访问的最终资源页面。

 

1. 防盗链定义:所谓防盗链是指防止其他web站点页面通过连接本站点的页面来访问本站点内容,这样对于本站点来说侵犯了本站点的版权

2.非法用户: 常访问本站点页面的链接有三种出处:

(1) 地址栏输入链接地址。如地址栏上输入www.csdn.com/news_100.jsp;

(2)其他站点上的应用程序的页面上通过链接本站点页面资源。如(www.123.com/content.jsp页面上有一链接指向www.csdn.NET/news_100.jsp);

(3)本站点上的页面资源连接到本站点的另外的页面资源。如(www.csdn.com/mulu.jsp页面上有一链接指向www.csdn.com/news_100.jsp);

这三类用户中第一类和第二类通常是非法用户,如果控制这些用户不能访问本站点页面资源

 3.如何防盗链:通过调用request.getHeader("Referer");判断访问本页面的链接来自哪里。具体做法:

[java] view plain copy

  1. package edu.request;
  2. import java.io.IOException;
  3. import javax.servlet.ServletException;
  4. import javax.servlet.http.HttpServlet;
  5. import javax.servlet.http.HttpServletRequest;
  6. import javax.servlet.http.HttpServletResponse;
  7. public class RefererServlet extends HttpServlet {
  8. //防盗链
  9. public void doGet(HttpServletRequest request, HttpServletResponse response)
  10. throws ServletException, IOException {
  11. //referer为客户端带来的请求头
  12. String referer = request.getHeader("Referer");
  13. System.out.println(referer);
  14. //如果链接出自地址栏的输入,则跳转至本站点RequestAndResponse应用的首页
  15. if (referer==null) {
  16. System.out.println("由于您访问的内容版权所有,您是地址栏上输入的链接,即将跳转至本站首页...");
  17. response.sendRedirect("/RequestAndResponse/index.jsp");
  18. return ;
  19. }
  20. //如果链接出自本站点的RequestAndResponse应用的页面,则正常显示,如果是出自其他站点或本站点的其他应用,则跳转至本站点RequestAndResponse应用的首页
  21. if(!referer.startsWith("http://localhost:8080/RequestAndResponse")){
  22. System.out.println("由于您访问的内容版权所有,您是其他网站页面的链接,即将跳转至本站首页...");
  23. response.sendRedirect("/RequestAndResponse/index.jsp");
  24. return ;
  25. }else {
  26. System.out.println("来自本站页面的链接,合法用户");
  27. request.getRequestDispatcher("content.jsp").forward(request, response);
  28. }
  29. }
  30. public void doPost(HttpServletRequest request, HttpServletResponse response)
  31. throws ServletException, IOException {
  32. doGet(request, response);
  33. }
  34. }

比如:通过http://localhost:8080/ServletDetail/index.jsp页面的一个链接,链接至http://localhost:8080/RequestAndResponse/referer,则request中封装这Referer请求头,其内容为http://localhost:8080/ServletDetail/index.jsp

如下图

:

点击新闻后,控制台输出:

时间: 2025-01-16 08:20:26

web页面防盗链功能使用--request.getHeader("Referer")的相关文章

web html 防盗链

一概念 1防盗链 在HTTP协议中,有一个表头字段叫referer,采用URL的格式来表示从哪儿链接到当前的网页或文件,通过referer,网站可以检测目标网页访问的来源网页.有了referer跟踪来源就好办了,这时就可以通过技术手段来进行处理,一旦检测到来源不是本站即进行阻止或者返回指定的页面. 2页面中的转义字符 在HTML中,定义转义字符串的原因有两个:第一个原因是像“<”和“>”这类符号已经用来表示HTML标签,因此就不能直接当作文本中的符号来使用.为了在HTML文档中使用这些符号,就

配置Nginx实现防盗链功能!

准备两台Linux,用第二台linux主机来通过拿第一台主机的图片链接来展现图片: 因为主机2是通过主机1拿的图片链接所以当别人都通过链接访问图片时,占用的是主机一的内存空间,而不是占用主机2的内存空间 A)设定主机一为本公司的服务器,一旦非本公司人员通过链接去访问图片时,会对服务器造成内存压力. 解决方法,主机一做防盗链功能可以有效的阻止非本公司人员访问图片.以造成内存压力------->这样主机2将访问不到图片即使有图片链接 第一台Ip地址为:192.168.200.115 第二台ip地址值

request.getHeader(&quot;Referer&quot;)理解【转载】

request.getHeader("Referer")用于获取来源页地址,但有时却为空值,这是怎么回事.原因如下: getHeader("Referer")要走http协议时才有值,也就是说要通过<a href="url">a</a>标记才能获得那个值,而通过改变location或是<a href="javascript:location='url'">a</a>都是得不到那个

request.getHeader("referer")的作用

在开发web程序的时候,有时我们需要得到用户是从什么页面连过来的,这就用到了referer. 它是http协议,所以任何能开发web程序的语言都可以实现,比如jsp中是: request.getHeader("referer");response.sendRedirect(ref); js的话就是这样做:javascript:document.referrer 那它能干什么用呢?我举两个例子: 1,防止盗连,比如我是个下载软件的网站,在下载页面我先用referer来判断上一页面是不是自

Nginx服务之防盗链功能

Nginx防盗链 一.原理 二.配置指令 三.实例配置 一.原理 盗链是一种损害原有网站合法利益,给原网站所在服务器造成额外负担的非法行为.要采取防盗链的措施,首先需要了解盗链的实现原理. 客户端向服务器请求资源时,为了减少网络带宽,提高响应时间,服务器一般不会一次将所有资源完整地传回给客户端.比如在请求一个网页时,首先会传回该网页的文本内容,当客户端浏览器在解析文本的过程中发现有图片存在时,会再次向服务器发起对该图片资源的请求,服务器将存储的图片资源再发送给客户端.在这个过程中,如果该服务器上

Web页面上传功能

注:参考消保维权系统,登记页面上传功能 1.JSP页面: <%@page import="com.wondersgroup.esf.base.util.ApplicationContextUtil"%> <%@ page language="java" pageEncoding="UTF-8"%> <%@ include file="../../../common/taglib.jsp" %>

具有P2P及防盗链功能的OTT/IPTV互联网解决方案

随着信息技术的快速发展和社会信息化需求的增加,2001 年,国家"十五"计划纲要明确的提出了三网融合政策,明确相互进入的准则,在随后相继出现了多种融合形态及创新的业务模式,OTT 互联网业务电视就是其中代表性的一种. 互联网OTT业务方便了人们观看互联网电视,获得更好的网络体验.目前国内的OTT系统网络电视盒子种类繁多,质量也是参差不齐.这也正说明市场处在激烈的竞争阶段,进入的门槛也比较低.很多运营商看好这个市场,想要运营的网络电视盒或者希望在国外面向华人华侨发行,选择合适的OTT直播

nginx实践(四)之静态资源web服务(防盗链)

防盗链目的 防止资源被盗用 http_refer 语法 原文地址:https://www.cnblogs.com/raind/p/10322956.html

什么是防盗链设置中的空Referer

设置防盗链时候指明和不指明空Referer的区别及实现后的效果? 什么是Referer? 这里的 Referer 指的是HTTP头部的一个字段,也称为HTTP来源地址(HTTP Referer),用来表示从哪儿链接到目前的网页,采用的格式是URL.换句话说,借着 HTTP Referer 头部网页可以检查访客从哪里而来,这也常被用来对付伪造的跨网站请求. Referer的正确英语拼法是referrer.由于早期HTTP规范的拼写错误,为了保持向后兼容就将错就错了.其它网络技术的规范企图修正此问题