package cn.itcast.web.tag;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.SkipPageException;
import javax.servlet.jsp.tagext.SimpleTagSupport;
public class RefererTag extends SimpleTagSupport {
private String site;
private String page;
public void setSite(String site) {
this.site = site;
}
public void setPage(String page) {
this.page = page;
}
@Override
public void doTag() throws JspException, IOException {
//看来访问者是从哪个页面来的
PageContext pageContext = (PageContext)this.getJspContext();
HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
String referer = request.getHeader("referer"); //
http://www.sina.com/index.html
//判断
if(referer==null || !referer.startsWith(site)){
HttpServletResponse response = (HttpServletResponse) pageContext.getResponse();
String webroot = request.getContextPath(); //day11_example
if(page.startsWith(webroot)){
response.sendRedirect(page);
}else{
response.sendRedirect(webroot + page);
}
//重定向后,控制保护的页面不要执行
throw new SkipPageException();
}
}
}
相关推荐
综上所述,通过编写Servlet来破解图片防盗链,不仅能够有效解决图片链接无法正常访问的问题,还能进一步提高网站的安全性和用户体验。但需要注意的是,在实际应用过程中还需综合考虑各种因素,制定合理的策略和技术...
java 防盗链详解及解决办法 Java 防盗链的概念 防盗链的概念是指在自己的服务器上,通过技术手段将其他网站的内容(比如一些音乐、图片、软件的下载地址)放置在自己的网站中,通过这种方法盗取其他网站的空间和...
本资源包“servlet高级应用过滤器、防盗链等一系列技术工具打包”聚焦于Servlet的高级应用场景,提供了多种实用的技术工具,以提升Web应用程序的安全性、性能和用户体验。 首先,我们来探讨“过滤器(Filter)”。...
"图片防盗链"技术就是为了防止这种情况发生的一种策略。本文将深入探讨如何使用JSP实现图片防盗链,并讨论相关技术。 一、理解图片防盗链 图片防盗链,即防止其他网站通过URL直接引用你的服务器上的图片,避免消耗...
流媒体服务器防盗链插件是针对流媒体服务的一项重要安全技术,主要用于防止未经授权的用户通过直接复制和分享链接来非法获取或下载不应被公开的流媒体文件。这不仅关乎知识产权的保护,也是确保内容创作者的合法权益...
在本文的示例中,防盗链是通过添加一个Java类文件来实现的,该类文件实现了javax.servlet.Filter接口。在这个过滤器中,我们可以通过编写代码来实现对请求头信息的检查,并根据检查结果决定是否允许请求继续执行。 ...
"防盗链filter"是一种常见的Java技术,用于防止网站的资源(如图片、视频、音频等)被其他未经授权的网站非法引用,即“盗链”。本篇文章将深入探讨Java防盗链filter的工作原理、实现方式以及其在实际应用中的重要性...
Java防盗链技术是一种重要的网络安全措施,主要用于保护服务器资源不被未经授权的第三方非法访问或滥用。在Web应用中,常见的资源如图片、视频、音频文件等可能会成为盗链的目标。Java防盗链代码通常会结合HTTP头部...
本文将详细介绍一种基于Servlet的防盗链实现方法,以及如何在Web应用中配置和使用。 一、Servlet型反盗链原理 防盗链的核心在于检查HTTP请求中的`Referer`头部字段。`Referer`(引荐来源)是HTTP协议中的一项元...
Java+Struts2 防盗链(Filter 不可过滤 Action) 防盗链是指防止在没有通过合理的登录界面,直接进入到系统中的机制。其优点是避免在每个页面判断是否获得 session,虽然在里也是判断是否或的 session,但是代码...
韩顺平的Servlet笔记涵盖了许多关于Servlet和Web开发的关键知识点。 1. **CMS(内容管理系统)与数据库交互**: CMS通常用于存储和管理网站内容,但直接依赖CMS可能带来维护困难。因此,数据最好存储在数据库中,...
Java防盗链技术在报表系统中的应用主要涉及到网络安全和权限控制,尤其是对于在线报表工具如FineReport而言,确保数据安全和防止非法访问至关重要。本文将详细介绍如何利用Java实现防盗链功能,并提供一个具体的应用...
以上代码展示了如何在Servlet中获取请求参数、执行防盗链检查以及进行请求转发。实际开发中,你可能会添加更多的业务逻辑,如数据库操作、用户验证等。 总之,`httpservlet_request`是一个关于Java Servlet处理HTTP...
另外,还需防止非法访问,例如设置权限控制或添加防盗链机制。 综上所述,一个简单的Servlet图片服务器通过解析HTTP请求并直接从文件系统读取图片,实现了高效且灵活的图片服务。在实际项目中,根据需求进行适当...
在com.tacitknowledge.filters开源项目上的扩展,修改了原项目的部分代码,其中配置文件名字应该在classes目录下filters_config.properties.其他的可以参照apidocs,如有bug可给我留言或者email:zhuyu4839@gmail.com
综上所述,Java禁止直接URL访问图片涉及多个方面,包括Web服务器配置、Java Servlet、权限验证、过滤器、防盗链技术以及CDN的使用等,这些都需要开发者深入理解和灵活运用。通过这些手段,我们可以有效地保护网络...
图片请求通常也是通过GET方法进行的,但在请求头中会包含特定的信息,如`Referer`字段,它指示了图片请求的来源页面,这对于防盗链有重要意义。在给定文件中,可以看到一个图片请求示例: **GET/images/007.pngHTTP/...
- **防盗链保护**: 为了防止未授权的下载,服务器可以通过检查HTTP请求头中的Referer字段或使用令牌验证来实现防盗链。 3. **JSP整合上传与下载** - 在JSP中,通常使用EL(Expression Language)和JSTL(Java...
对于有价值或版权的文件,你可能还需要实施防盗链策略,防止未经许可的第三方站点直接链接到你的文件。 10. **使用框架简化** 现代的Web框架如Spring MVC提供了更简洁的API来处理文件下载,可以大大简化上述步骤...
除了基本的整合配置外,还可以进一步增强安全性,例如通过设置防盗链来防止外部网站盗用图片资源。在 Apache 的 `httpd.conf` 文件中添加以下配置: ```apacheconf # 设置图片防盗链 SetEnvIfNoCase Referer "^...