博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
木其工作室代写程序 [原]使用Filter过滤ip禁止访问系统
阅读量:6276 次
发布时间:2019-06-22

本文共 1956 字,大约阅读时间需要 6 分钟。

原创作品,允许转载,转载时请务必以超链接形式标明文章 、作者信息和本人声明。否则将追究法律责任。
作者: 地址:

在实际应用中,部署的项目如果收到恶意攻击,那么就需要将收到请求的ip过滤掉,现在以Filter过滤器为例讲解实现方式:

    1、自定义Filter过滤器,继承自javax.servlet.Filter 这个接口,实现它里面的三个方法;

    2、在init() 方法中接收配置的禁止访问的ip,以逗号分隔;

    3、在doFilter() 中进行业务处理,取出当前访问的ip 与系统中配置的ip匹配,如果存在则跳转到禁止访问的页面,如果没有就放行;

    4、在web.xml中配置该过滤器,指定拦截方式为所有请求,然后添加初始化参数指定禁止访问的ip。

具体代码如下:

package com.chenghui.util;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;/** * 定义IpFilter过滤器,过滤掉自己配置的ip列表禁止访问系统 * ip列表在配置的filter中加入初始化参数即可。 * @author Administrator * */public class IpFilter implements Filter{	String [] forbidIps = null;	@Override	public void destroy() {		// TODO Auto-generated method stub	}	@Override	public void doFilter(ServletRequest request, ServletResponse response,			FilterChain filterChain) throws IOException, ServletException {		//由于拦截器定义的拦截规范是/* ,所以所有的请求都会被拦截,为了防止死循环 开一个特例显示具体的访问结果		if(((HttpServletRequest)request).getRequestURI().contains("forbid.jsp")){			filterChain.doFilter(request, response);			return;//不加return 会继续执行请求。		}				String remoteAddr = request.getRemoteAddr();		if(forbidIps!=null){			for (int i=0; i
的初始化参数 String initParamter = filterConfig.getInitParameter("forbidIps"); if(initParamter != null){ forbidIps = initParamter.split(","); } }}

web.xml中的配置如下:

ipFilter
com.chenghui.util.IpFilter
forbidIps
192.168.1.108,192.168.6.89,192.168.6.99
ipFilter
/*
好了,IpFilter过滤器定义完毕了,然后部署项目,在浏览器中运行试试看,效果如下:

作者:ch656409110 发表于2013-8-7 21:46:46
阅读:2959 评论:0

转载于:https://www.cnblogs.com/sourcecode2014/p/3295414.html

你可能感兴趣的文章
Android 使用 ViewPager+RecyclerView+SmartRefreshLayout 实现顶部图片下拉视差效果
查看>>
Flutter之基础Widget
查看>>
写给0-3岁产品经理的12封信(第08篇)——产品运营能力
查看>>
ArcGIS Engine 符号自动化配置工具实现
查看>>
小程序 · 跳转带参数写法,兼容url的出错
查看>>
flutter error
查看>>
Flask框架从入门到精通之模型数据库配置(十一)
查看>>
10年重新出发
查看>>
2019年-年终总结
查看>>
聊聊elasticsearch的RoutingService
查看>>
让人抓头的Java并发(一) 轻松认识多线程
查看>>
从源码剖析useState的执行过程
查看>>
地包天如何矫正?
查看>>
中间件
查看>>
Android SharedPreferences
查看>>
css面试题
查看>>
Vue组建通信
查看>>
用CSS画一个带阴影的三角形
查看>>
前端Vue:函数式组件
查看>>
程鑫峰:1.26特朗.普力挺美元力挽狂澜,伦敦金行情分析
查看>>