zoukankan      html  css  js  c++  java
  • 使用java防止非法请求

    1.过滤器

    public class ImgFilter implements Filter {
    
    
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
            System.out.println("过滤器开始!!!");
        }
    
        @Override
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
            //获取当前请求的连接地址和上一个发送请求的地址
            HttpServletRequest httprequest=(HttpServletRequest) request;
            HttpServletResponse httpresponse=(HttpServletResponse) response;
            //获取上一个发送请求的连接
            String referer = httprequest.getHeader("Referer");
            String serverName = httprequest.getServerName();
            System.out.println(referer+"	"+serverName);
            //||!referer.startsWith("http://www.aproject.com")
            if (referer==null ||!referer.contains(serverName)){
                request.getRequestDispatcher("/img/ffqq.png").forward(request,response);
                return;
            }
            //放行
            chain.doFilter(request,response);
        }
    
        @Override
        public void destroy() {
            System.out.println("过滤器销毁!!!");
        }
    }

    2.web.xml

    <filter>
        <filter-name>ImgFilter</filter-name>
        <filter-class>com.szh.ImgFilter</filter-class>
      </filter>
      <filter-mapping>
        <filter-name>ImgFilter</filter-name>
        <url-pattern>/img/*</url-pattern>
      </filter-mapping>

    正常访问

    非法访问  从另一个项目中访问图片

     

  • 相关阅读:
    BaseServlet的编写
    两个线程交替打印1-100
    java集合中的HashMap源码分析
    mybatis一级缓存与二级缓存的原理
    mybatis的执行流程
    spring IOC的理解
    一文彻底搞懂面试中常问的各种“锁”
    Dubbo相关的基础
    Servlet基础
    文件传输基础
  • 原文地址:https://www.cnblogs.com/szhhhh/p/12260220.html
Copyright © 2011-2022 走看看