web防止盗链

原创 2011年10月18日 13:50:29

   描述:在没有登录系统时,防止使用某请求地址登录系统。这里使用了Filter类过滤所有.jsp和.do请求,避免了在每个页面或action中判断用户是否登录。

 web.xml 配置:

  <servlet>
    <description>防止盗链</description>
    <servlet-name>LoginFilter</servlet-name>
    <servlet-class>com.dhe.common.LoginFilter</servlet-class>
  </servlet>

 <filter>
  <filter-name>loginFilter</filter-name>
  <filter-class>
   com.dhe.common.LoginFilter
  </filter-class>
 </filter>
 <filter-mapping>
  <filter-name>loginFilter</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>

后台代码:

package com.dhe.common;

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;
import javax.servlet.http.HttpSession;
/**
 * 防止盗链
 * @author mnw 2011.10.17
 *
 */
public class LoginFilter implements Filter {


    public void doFilter(ServletRequest request, ServletResponse response,
               FilterChain chain)
         throws IOException, ServletException {
        HttpSession session = ((HttpServletRequest)request).getSession();
       // System.out.println("getRequestURI="+((HttpServletRequest)request).getRequestURI());
        String requestUrl=((HttpServletRequest)request).getRequestURI();
        if(requestUrl.contains(".jsp")||requestUrl.contains(".do")){
          if("/DHETRANSPORT/login.jsp".equals(requestUrl)||"/DHETRANSPORT/".equals(requestUrl)||"/DHETRANSPORT/loginOut.jsp".equals(requestUrl)||requestUrl.contains("sysLogin.do")){
              //System.out.println("==");
              chain.doFilter(request, response);
             }
             else{
              if(session.getAttribute("loginUser")==null){
               ((HttpServletResponse)response).sendRedirect("loginOut.jsp");
              }else{
               chain.doFilter(request, response);
              }
             }
        }else{
         chain.doFilter(request, response);
        }
    }

    public void init(FilterConfig filterConfig) throws ServletException {
    }

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

}

 

 

javaweb学习笔记(六)-Referer防止盗链

终于放五一了,好几天没有写博客总结每天学习了,主要还是----懒 ̄ω ̄=,没办法的事呢。   跳过乱码问题,乱码还真是让人有点头疼呢,但是好好的写,时刻记得编码一致,应该还是没什么的。这几天学了设置...
  • qq_34799211
  • qq_34799211
  • 2017-04-30 00:29:55
  • 167

Web基础之盗链与简单防盗链技术

Web基础之盗链技术与简单防盗链技术 一、盗链简介: 盗链是指服务提供商自己不提供服务的内容,通过技术手段绕过其它有利益的最终用户界面(如广告),直接在自己的网站上向最终用户提供其它服务提供商的服务内...
  • BlueSky_USC
  • BlueSky_USC
  • 2017-05-30 17:22:39
  • 598

深入体验JavaWeb开发内幕——使用Request对象设置防盗链

使用Request对象设置页面的防盗链       所谓的防盗链就是当你以一个非正常渠道去访问某一个Web资源的时候,服务器会将你的请求忽略并且将你的当前请求变为按正常渠道访问时的请求并返回到相应的...
  • lijizh1013
  • lijizh1013
  • 2012-10-29 19:17:32
  • 6959

PHP防止盗链的方法

防盗链的技术已经很普遍了,有些网站不喜欢自己的图片被别的网站直接复制使用,便使用了防盗链的技术,这样别人在直接复制使用网站图片时,图片便会按照程序的设定不显示或显示防盗链等字样。 使用了防盗链技术,...
  • luyaran
  • luyaran
  • 2016-09-18 11:32:31
  • 1658

Java Web防止恶意登陆或防盗链的使用

原文地址:http://www.cnblogs.com/zhang-cb/p/6112467.html 使用场景:明明引用了一个正确的图片地址,但显示出来的却是一个红叉或写有“此图片仅限于***网...
  • tanga842428
  • tanga842428
  • 2017-02-04 13:47:20
  • 763

怎么防止网站图片被盗链?

要防止网站图片被盗链,那么就有必要了解?链的手段,基本上可以分为两种: 第一种:盗链者直接使用图片链接引用网站上的图片。防止这种盗链情况的发生有两种可行的方法:通过Apache服务器进行控制和使用S...
  • luyaran
  • luyaran
  • 2016-09-18 11:29:39
  • 3296

Asp.net MVC防止图片盗链的实现方法,通过自定义RouteHandler来操作

本文告诉你如何在ASP.NET MVC中实现一个自定义RouteHandler来防止其他人盗链你的图片. 首先,我们来回顾一下当一个请求发往ASP.net MVC站点时的情景,IIS收到请求并将请求...
  • chengly0129
  • chengly0129
  • 2012-08-22 16:12:24
  • 838

nginx如何防止图片盗链

http://blog.sina.com.cn/s/blog_5f54f0be0100yqmi.html 为了防止他人盗用我们的宽带而影响到我们的服务器,我们必须防止图片的盗链行为。...
  • loongwong2011
  • loongwong2011
  • 2016-09-30 15:37:58
  • 422

Asp.Net防止盗链

  • 2009年09月04日 08:12
  • 5KB
  • 下载

PHP防止图片盗用/盗链的两种方法

如今的互联网,采集网站非常多,很多网站都喜欢盗链/盗用别人网站的图片,这样不仅侵犯网权,还导致被盗链的网站消耗大量的流量,给服务器造成比较大的压力,本文章向大家介绍php如何防止图片盗用/盗链的两种方...
  • xueling022
  • xueling022
  • 2016-11-06 11:01:43
  • 1357
收藏助手
不良信息举报
您举报文章:web防止盗链
举报原因:
原因补充:

(最多只允许输入30个字)