`
ybhuxiao
  • 浏览: 193254 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

做个图片的防盗链

    博客分类:
  • java
阅读更多
目的是,网站本身的图片不防盗链,用户上传的图片不许外链

用户上传的图片都在userfile目录和其子目录下面

1. 配置filter
	<filter>   
	    <filter-name>jpgServlet</filter-name>   
	    <filter-class>   
	        com.djwl.core.filter.JpgFilter
	    </filter-class> 
	</filter>
	<filter-mapping>   
	    <filter-name>jpgServlet</filter-name>   
	    <url-pattern>/userfile/*</url-pattern>   
	</filter-mapping>



2. Filter
package com.djwl.core.filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Description: <br>
 * 2010-4-13
 * @author huxiao kskr@qq.com
 */
public class JpgFilter implements Filter {

	@Override
	public void doFilter(ServletRequest servletrequest, ServletResponse servletresponse, FilterChain filterchain) throws IOException, ServletException {
		HttpServletRequest request = (HttpServletRequest)servletrequest;
		HttpServletResponse response = (HttpServletResponse)servletresponse;

		//获取请求来源
		String linkFrom = request.getHeader("referer");
		
		/**
		 * 如果不是从本网站链接,则返回本网站的logo,否则正常走
		 * 注意:这里的linkFrom为null的话也正常走。原因是,用户如果直接输入图片地址的话,linkFrom为null
		 */
		if(linkFrom != null && !linkFrom.contains(request.getServerName())){
			System.out.println("盗链来自: "+linkFrom);
			request.getRequestDispatcher("/images/logo_red.jpg").forward(request, response);
		}else {
			filterchain.doFilter(request, response);
		}
	}

	@Override
	public void destroy() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void init(FilterConfig filterconfig) throws ServletException {
		// TODO Auto-generated method stub
		
	}

}





3. 测试

图片所在的是localhost1:1111,现在我用localhost1和localhost2去请求,ok的话,前者能显示,后者显示logo

body部分:这里我放了两个图片,前面一个是/images目录下的,不做防盗链,后面的做防盗链
<img src="http://localhost1:1111/images/bq_bgGreen.jpg">
<img src="http://localhost1:1111/userfile/20100405/7ef5d05bacd840e8beb8147653ad2906_81_81.jpg" />








OK,这就达到咱们的目的了

  • 大小: 38 KB
  • 大小: 39.6 KB
2
1
分享到:
评论

相关推荐

    如何快速解决图片防盗链问题

    其中一个常见的问题是图片防盗链。对于个人博客、SEO优化者、网站管理员以及内容创作者来说,遇到防盗链图片导致文章中的图片无法正常显示是一个令人头疼的问题。本文将详细介绍防盗链的基本原理,并提出一种简单...

    采集破解防盗链图片显示的方法

    在互联网上,图片防盗链是一种常见的保护措施,用于防止他人未经许可直接引用网站上的图片资源。这导致了图片采集过程中可能会遇到图片无法显示的问题。本文将深入探讨如何使用PHP来破解防盗链,以便在采集图片时能...

    Java爬取web图片防盗链

    HttpURLConnection+jsoup防盗链 {"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661...

    图片防盗链(jsp)

    "图片防盗链"技术就是为了防止这种情况发生的一种策略。本文将深入探讨如何使用JSP实现图片防盗链,并讨论相关技术。 一、理解图片防盗链 图片防盗链,即防止其他网站通过URL直接引用你的服务器上的图片,避免消耗...

    httpHandler实战应用:RSS-图片防盗链接-图片验证码

    本实战应用主要探讨如何利用HTTPHandler实现RSS图片防盗链和图片验证码功能,这些都是网站安全和内容保护的重要手段。 首先,让我们详细了解HTTPHandler。HTTPHandler是ASP.NET中的一个接口(IHttpHandler),它...

    java 防盗链详解及解决办法

    防盗链的概念是指在自己的服务器上,通过技术手段将其他网站的内容(比如一些音乐、图片、软件的下载地址)放置在自己的网站中,通过这种方法盗取其他网站的空间和流量。防盗链是一种不道德的行为,会对原网站造成很...

    破解图片防盗链servlet

    #### 一、图片防盗链机制的理解与原理 1. **防盗链的概念**:防盗链(Hotlink Protection)是指网站为了防止其他站点未经允许直接链接自己的资源(如图片、视频等),采取的一种技术手段,用以避免资源被非法使用...

    ASP.NET 图片防盗链示例

    ASP.NET 图片防盗链示例是一个实用的编程实践,它主要针对网站的图像资源保护问题。在互联网上,图片被盗用是一种常见的现象,这不仅侵犯了原创者的权益,也可能对网站的流量造成损失。因此,实施图片防盗链技术是...

    无视图片防盗链php单文件.zip

    这个名为"无视图片防盗链php单文件.zip"的压缩包包含了一个PHP文件(img.php)和一个使用说明(使用说明.txt),显然是为了提供一种解决方案来规避或破解图片防盗链。下面将详细探讨图片防盗链的原理以及可能的处理...

    C# MVC HttpModule 防盗链和图片304缓存

    在本文中,我们将深入探讨如何使用C# MVC中的HttpModule实现网站防盗链功能以及优化图片的304缓存机制。HttpModule是ASP.NET框架的一部分,它可以捕获HTTP请求并在处理之前或之后进行操作,因此它是实现这些功能的...

    图片防盗链.java

    图片防盗链.java图片防盗链.java图片防盗链.java

    Asp.Net MVC 图片防盗链(v_1.1.0)

    在Asp.Net MVC框架中,图片防盗链是一个重要的安全措施,尤其对于那些主要依赖图片内容的网站来说。图片防盗链技术的主要目的是防止未经授权的第三方站点通过URL直接引用或嵌入你的网站图片,从而节省带宽资源,保护...

    Java爬虫小例子,爬取小网站,突破防盗链下载图片

    这个"Java爬虫小例子"项目展示了如何利用Java来爬取小型网站,特别是那些有防盗链保护的图片资源。防盗链是网站为了防止其他网站直接引用其服务器上的资源而采取的一种防护措施。下面我们将深入探讨相关的知识点。 ...

    图片防盗链破解代码ASP

    可以破解任何网站的图片防盗链,极简的代码,使用时只需将图片地址改成http://你的网址/i.asp?url=图片原地址,即可调用任何网站的图片。

    asp.net中利用ashx实现图片防盗链

    在ASP.NET中,实现图片防盗链是保护网站资源、防止他人网站随意调用自身服务器上的图片资源、节省带宽及服务器资源的一种常见策略。本文将详细介绍如何通过ashx(Application Handler)来实现这一功能。 ### ashx ...

    ISAPI Rewrite实现IIS图片防盗链

    为了实现图片防盗链,根据网络上搜集的资料加上自己的实践,终于实现了iis下的图片防盗链功能。  实施步骤:  1.下载比较出名的www.helicontech.com提供的ISAPI Rewrite软件的免费版本(免费版本虽然有一些功能上...

    网站防盗链(IIS7.0与IIS7.5配置防盗链)

    网站防盗链技术是一种防止其他网站未经许可盗用你服务器上资源的方法,比如图片、视频或文件等。在IIS(Internet Information Services)7.0和7.5版本中,可以通过设置HTTP响应标头和URL筛选器来实现防盗链功能。...

    IIS防盗链附带防盗链效果 for phpwind.rar

    标题"IIS防盗链附带防盗链效果 for phpwind.rar"涉及到的是互联网服务器技术中的一个关键概念,即IIS(Internet Information Services)防盗链功能,并且是针对PHPWind论坛系统的。PHPWind是一款流行的开源社区建站...

    ASP.NET实现图片防盗链功能

    ASP.NET 实现图片防盗链功能是一项重要的网络安全措施,旨在防止他人未经许可地引用或嵌入网站上的图片资源,从而节省带宽、保护版权并提升用户体验。以下是一个详细的步骤指南,教你如何在 ASP.NET 中实现这一功能...

    IIS防盗链,示例文件

    图片防盗链类似,主要防止其他网站嵌入你的图片,导致流量被盗。IIS可以配置图像文件类型(如.jpg、.png)的筛选规则,仅允许你的网站内的页面引用这些图片,或者为图片添加水印,确保即使被引用也能识别来源。 4....

Global site tag (gtag.js) - Google Analytics