目的是,网站本身的图片不防盗链,用户上传的图片不许外链
用户上传的图片都在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
分享到:
相关推荐
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...
破解图片防盗链,有时连接不了网站的图片,因为对方有防盗链系统,写一个servlet代码
相信很多人,不管是私人也好,seo也好,站长也好,还是小推手也好,都会不时越到“防盗链图片”这个问题,有时候需要把整个网页文章拷贝进去,但是复制过去的图片,到自己的网站这边,刷新一下就没了~~~给自己活着给...
图片防盗链.java图片防盗链.java图片防盗链.java
利用httpHandler 实现RSS 图片防盗链接 图片验证码等功能
图片防盗链示例,非常简单明了的告诉你该怎么做。
可以破解任何网站的图片防盗链,极简的代码,使用时只需将图片地址改成http://你的网址/i.asp?url=图片原地址,即可调用任何网站的图片。
为了实现图片防盗链,根据网络上搜集的资料加上自己的实践,终于实现了iis下的图片防盗链功能。 实施步骤: 1.下载比较出名的www.helicontech.com提供的ISAPI Rewrite软件的免费版本(免费版本虽然有一些功能上...
asp.net中利用ashx实现图片防盗链
ASP.NET实现图片防盗链功能 很好的资源
网站防盗链: IIS7.5配置防盗链 IIS7.0配置防盗链
无视图片防盗链php单文件
iis 防盗链 音乐网站防盗链 图片防盗链
主要介绍了 java 防盗链详解及解决办法的相关资料,这里介绍了防盗链的概念、产生原因及Http中的referer,最后介绍解决办法,需要的朋友可以参考下
对于网站以图片为主的,图片防盗链就显的非常重要了,非本站的访问都应该拒绝图片的显示,要不你的图片就很有容易被别人盗取
是PHP破解防盗链的代码的源码,解决采集图片盗链不显示的方法,很简单,特别实用。
防止他人引用自己的图片,或者盗用自己的图片
asp.net图片防盗链
通过Java爬虫,爬取网站内容(图片以及信息)并记录,在需要的时候可以下载,并且突破网站的防盗链
主要介绍了PHP实现图片防盗链破解操作,结合实例形式分析了PHP解决图片防盗链问题的相关操作技巧,需要的朋友可以参考下