实现一个基本防盗链标签

1. 标签处理类


 1 public class MyReferer extends BodyTagSupport {
2 private String site;
3 private String back;
4 public String getSite() {
5 return site;
6 }
7 public void setSite(String site) {
8 this.site = site;
9 }
10 public String getBack() {
11 return back;
12 }
13 public void setBack(String back) {
14 this.back = back;
15 }
16 public int doEndTag() throws JspException {
17 // 获取JSP上下文环境对象
18 PageContext pageContext = this.pageContext;
19 // 获取到request对象
20 HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
21 // 判断
22 String header = request.getHeader("referer");
23 if(header != null && header.startsWith(getSite())){
24 // 执行后续的页面
25 return Tag.EVAL_PAGE;
26 }else{
27 // 页面的重定向
28 HttpServletResponse response = (HttpServletResponse)pageContext.getResponse();
29 try {
30 response.sendRedirect(getBack());
31 } catch (IOException e) {
32 e.printStackTrace();
33 }
34 // 不执行
35 return Tag.SKIP_PAGE;
36 }
37 }
38 }

2. 描述文件


 1 <?xml version="1.0" encoding="UTF-8"?>
2 <taglib
3 xmlns="http://java.sun.com/xml/ns/javaee"
4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
6 version="2.1">
7 <!-- 2. 编写标签库描述文件 -->
8 <tlib-version>1.0</tlib-version>
9 <short-name>jnb</short-name>
10 <tag>
11 <name>referer</name>
12 <tag-class>cn.itcast.custom.MyReferer</tag-class>
13 <body-content>empty</body-content>
14 <attribute>
15 <name>site</name>
16 <required>true</required>
17 <rtexprvalue>true</rtexprvalue>
18 </attribute>
19 <attribute>
20 <name>back</name>
21 <required>true</required>
22 <rtexprvalue>true</rtexprvalue>
23 </attribute>
24 </tag>
25 </taglib>

3. 引入和使用


1 <%@taglib uri="/WEB-INF/referer.tld" prefix="my"%>
2 <my:referer site=http://localhost:8080/day11/list.jsp
3 back="/day11/list.jsp"/>

实现一个基本防盗链标签,布布扣,bubuko.com

时间: 2024-10-12 23:28:52

实现一个基本防盗链标签的相关文章

标签案例-开发防盗链标签

1 package cn.itcast.web.tag; 2 3 import java.io.IOException; 4 5 import javax.servlet.http.HttpServletRequest; 6 import javax.servlet.http.HttpServletResponse; 7 import javax.servlet.jsp.JspException; 8 import javax.servlet.jsp.PageContext; 9 import

web盗链及防盗链的措施

作为普通的网民来说,一般不需要知道也不用关心什么是盗链,不过如果你是网站的开发者或维护者,就不得不重视盗链的问题了.如果你刚刚开发完一个没有防盗链的带有文件下载功能的网站,挂上internet,然后上传几个时下非常热门的软件或电影并在网站内公布下载地址,让MSN上的所有好友都来体验一下你的杰作.不用多久就会发现网速出奇地变慢,甚至服务器托管中心的服务员会热情地打电话告诉你的网站流量很大,估计是网站受欢迎起来了,问你是不是该考虑加钱租用带宽更宽但价格更贵的网线了.在这个值得庆祝的时候赶快打开Goo

防盗链

防盗链的8种方法总结及分析 作为普通的网民来说,一般不需要知道也不用关心什么是盗链,不过如果你是网站的开发者或维护者,就不得不重视盗链的问题了.如果你刚刚开发完一个没有防盗链的带有文件下载功能的网站,挂上internet,然后上传几个时下非常热门的软件或电影并在网站内公布下载地址,让MSN上的所有好友都来体验一下你的杰作.不用多久就会发现网速出奇地变慢,甚至服务器托管中心的服务员会热情地打电话告诉你的网站流量很大,估计是网站受欢迎起来了,问你是不是该考虑加钱租用带宽更宽但价格更贵的网线了.在这个

[转载]八种常见的防盗链方法总结及分析

作为普通的网民来说,一般不需要知道也不用关心什么是盗链,不过如果你是网站的开发者或维护者,就不得不重视盗链的问题了.如果你刚刚开发完一个没有防盗链的带有文件下载功能的网站,挂上internet,然后上传几个时下非常热门的软件或电影并在网站内公布下载地址,让MSN上的所有好友都来体验一下你的杰作.不用多久就会发现网速出奇地变慢,甚至服务器托管中心的服务员会热情地打电话告诉你的网站流量很大,估计是网站受欢迎起来了,问你是不是该考虑加钱租用带宽更宽但价格更贵的网线了.在这个值得庆祝的时候赶快打开Goo

防盗链概念

基础概念 如果你刚刚开发完一个没有防盗链的带有文件下载功能的网站,然后上传几个时下非常热门的软件或电影并在网站内公布下载地址.不用多久就会发现网速出奇地变慢,甚至服务器托管中心的服务员会热情地打电话告诉你的网站流量很大,估计是网站受欢迎起来了,问你是不是该考虑加钱租用带宽更宽但价格更贵的网线了.在这个值得庆祝的时候赶快打开Google Analytics看看有多少人来光顾你的网站了吧,如果发现访客每天才十来个人,很遗憾地告诉你:你的网站资源不幸地被人盗链了. 网站资源被盗链简单来说就是用户在别的

3_Jsp标签_简单标签_防盗链和转义标签的实现

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

用Nginx给网站做一个简单的防盗链

目录结构 Nginx防盗链配置 有些时候,大家不想让别人调用自己的图片,一是因为个人版权的问题,再一点就是会增加服务器的负载.还会产生一些没必要的流量. 其实在Nginx里面,很容易就做到防盗链的,在nginx.conf文件加入一个localtion配置项. 下面请看配置: location ~ .*\.(jpg|jpeg|JPG|png|gif|icon)$ { valid_referers blocked www.qixing318.com qixing318.com; if ($inval

javaWeb 使用jsp标签进行防盗链

/** * 1.新建类继承SimpleTagSupport * 新建2个属性, 添加对应的set方法 * 覆盖doTag()方法 */ import java.io.IOException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.jsp.JspException; import javax.servlet.j

谈谈网站的防盗链(Filter过滤器)

导语:明明引用了一个正确的图片地址,但显示出来的却是一个红叉或写有“此图片仅限于***网站用户交流沟通使用”之类的“假图片”(下图便是网易博客的防盗链效果).用嗅探软件找到了多媒体资源的真实地址用下载软件仍然不能下载.下载一些资源时总是出错,如果确认地址没错的话,大多数情况都是遇上防盗链系统了.常见的防盗链系统,一般使用在图片.音视频.软件等相关的资源上. 一.什么是防盗链系统:         在确保地址正确的情况下,不能下载相应的资源,均是受到防盗链系统的影响,那么究竟什么是防盗链系统呢?防