用自定义标签实现防盗链的操作
来源:互联网 发布:io域名注册 编辑:程序博客网 时间:2024/05/09 13:49
添加简单防盗链操作即限制引用页,作用原理:获取用户提交信息的网站地址,然后和真正的服务端的地址相比较,如果一致则表明是站内提交,或者为自己信任的站点提交,否则视为盗链。
步骤:定义标签处理类;定义描述文件;在内容页面使用标签
部分代码:
定义标签处理类
PageContext pageContext = (PageContext) this.getJspContext();HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();HttpServletResponse response = (HttpServletResponse) pageContext.getResponse();//通过头信息得到站点信息String referer = request.getHeader("referer");System.out.println(referer);/*防盗链的具体操作处理类 * 判断是否为盗链 * 如果访问站点为空或访问站点不是site开头的*/if(referer == null || !referer.startsWith(site)){//如果是盗链,根据page属性值,将盗链重定向指向访问被盗链内容的正确页面String contextPath = request.getContextPath();System.out.print(contextPath);if(page.startsWith(contextPath)){response.sendRedirect(page);}else if(page.startsWith("/")){response.sendRedirect(contextPath+page);}else{response.sendRedirect(contextPath+"/"+page);}//抛出异常throw new SkipPageException();}
定义描述文件:
<tag> <description>referer demo</description> <name>referer</name> <tag-class>cn.csdn.web.Tag.Referer</tag-class> <body-content>empty</body-content> <attribute> <name>site</name> <required>true</required> <!-- 指定属性值是否在JSP运行时自动产生,true为自动产生,false为不自动产生 --> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>page</name> <required>true</required> <!-- 指定属性值是否在JSP运行时自动产生,true为自动产生,false为不自动产生 --> <rtexprvalue>true</rtexprvalue> </attribute> </tag>
在内容页面使用标签:
<%@ taglib uri="http://cn.csdn.web.tag" prefix="tag"%><!-- 控制整个页面时无标签体,是单个标签声明 --><!--site:受信任站点,只允许次站点的请求page:正确的链接页面,发现盗链后将其自动转入此页面--><tag:referer site="http://localhost:8080/20111109" page="index.jsp"/>
- 用自定义标签实现防盗链的操作
- 自定义标签的使用-防盗链标签的实现
- 防盗链标签的实现
- 使用自定义标签防盗链
- 自定义标签写防盗链
- jstl自定义标签防盗链
- 【自定义标签的案例】防盗链、if标签、if-else标签、【foreach标签】、转义标签
- Jsp自定义标签_防盗链标签
- 【自定义标签开发】06-标签案例-开发防盗链标签
- 防盗链标签的开发
- Jsp标签_简单标签_防盗链和转义标签的实现
- JavaWeb -- 自定义标签实例, 防盗链, JSTL 核心标签
- javaweb之自定义标签库——防盗链标签
- JSP:自定义标签之防盗链标签开发
- Jsp防盗链标签
- 开发防盗链标签
- 案例:开发防盗链标签
- 开发防盗链标签源代码
- memcached安装指导
- lr使用小技巧
- Android signed APK
- 中继器·集线器·网桥·交换机·路由器·网关的区别
- memcached协议及命令
- 用自定义标签实现防盗链的操作
- 浅析boost asio中的event loop (3)
- NSNotificationCenter 的使用
- oracle死锁的解决
- 数据库学习 ORA-12545:因目标主机或对象不存在,连接失败
- Silverlight开发历程—(绘制报表)
- 网络性能测试工具-备忘
- 两个非root用户之间的免密码登录
- 发现自己很弱