限制客户端ip访问

原创 2004年12月30日 15:25:00
When securing HTTP traffic, you may wish to consider limiting access to clients with a certain IP address. You can do this at many levels.

Limiting client access using Tomcat (Engine, Host, or Context level)

If you want to limit client access at a high level such as the entire server, you will use a Tomcat valve.

Tomcat has two valves that will filter traffic based on the clinet's IP address. They are the RemoteAddrValve and the RemoteHostValve. Both of these valves are extended from RequestFilterValve.

For a discussion of how to configure Tomcat valves see http://jakarta.apache.org/tomcat/tomcat-5.0-doc/config/index.html.

To configure Tomcat in JBoss, you will need to either edit server.xml or jboss-service.xml based on JBoss version.

  • For JBoss 3.2.4 and higher server.xml is found in <jboss install dir>/server/<configuration>/deploy/jbossweb-tomcat50.sar
  • For JBoss 3.2.3 and lower jboss-server.xml is found in <jboss install dir>/server/<configuration>/deploy/jbossweb-tomcat41.sar/META-INF

Limiting client access using a servlet filter (Servlet or url-pattern level)

If you want to limit client access to a particular servlet or to requests that match a url pattern, you can use the servlet filter attached to this page. This requires JDK 1.4 or higher.

To install, place the attached jar in your WEB-INF/lib directory. If you want to use it in multiple web applications then you can instead put it in your <jboss install>/server/<configuration>/lib directory.

There is also an attached example web.xml file that shows how to configure the filter. The main part to look at is the filter definition:

  <filter>
     <filter-name>RemoteHostFilter</filter-name>
     <filter-class>org.jboss.remotehostfilter.RemoteHostFilter</filter-class>
     <init-param>        
        <param-name>deny</param-name>
        <param-value>150.0.0.*</param-value>
     </init-param>
     <init-param>        
        <param-name>allow</param-name>
        <param-value>192.4.5.6,127.0.0.*</param-value>
     </init-param>
  </filter>

This filter is configured by setting the "allow" and/or "deny" properties to a comma-delimited list of regular expressions(in the syntax supported by the java.util.regex package) to which the client IP address will be compared.

Evaluation proceeds as follows:

  • If there are any deny expressions configured, the IP will be compared to each expression. If a match is found, this request will be rejected with a "Forbidden" HTTP response.
  • If there are any allow expressions configured, the IP will be compared to each such expression. If a match is NOT found, this request will be rejected with a "Forbidden" HTTP response.
  • Otherwise, the request will continue normally.


Attachments:
hostfilter.jar Info on hostfilter.jar 3771 bytes
web.xml Info on web.xml 1538 bytes
RemoteHostFilter.java Info on RemoteHostFilter.java 5239 bytes
TestServlet.java Info on TestServlet.java 2592 bytes


在servlet中对IP进行限制

在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实I...
  • qq_16568069
  • qq_16568069
  • 2017年04月17日 15:22
  • 307

Squid配置之限制IP访问

1. 安装squid 使用root用户进行操作。 先使用rpm检测是否已经安装了sqlid,如>> rpm –q squid 如未安装,可使用>> yum –install squid进行安装...
  • atco
  • atco
  • 2015年02月03日 16:50
  • 5331

PHP限制IP访问 只允许指定IP访问 允许*号通配符过滤IP

/** * 检测访问的ip是否为规定的允许的ip * Enter description here ... */ function check_ip(){ $ALLOWED_IP=array(...
  • yw5201314
  • yw5201314
  • 2013年01月05日 10:21
  • 12895

Tomcat中实现IP访问限制

 Tomcat中的ip访问限制,即设置允许某个(或某些)客户端能够访问到tomcat服务器,或不能访问tomcat服务器。 网上资料不多,特在此说明,以下配置,都经过JDiy测试无误后发表。 ...
  • z507263441
  • z507263441
  • 2014年11月03日 15:58
  • 9424

cxf+spring开发(二)--- Ip地址拦截器,限制客户端Ip地址,只允许数据库中已经配置的Ip地址

上一篇博文中介绍了如何搭建cxf和spring环境,本文将围绕如何在此环境下编写拦截器,只允许已经配置好的IP地址访问服务器端。 一、修改配置文件applicationContext ...
  • Yolanda_NuoNuo
  • Yolanda_NuoNuo
  • 2015年07月23日 09:59
  • 2926

oracle 11g限制IP访问

因公司数据库密码泄露,其他部门不想关的人员也有了可以访问数据库的账户密码,虽然修改了密码,但为防止密码再次泄露保证数据库的安全,领导决定要对不想关人员的IP进行限定。 平台为linux redhat5...
  • autumn4575
  • autumn4575
  • 2014年11月29日 21:50
  • 1287

解决MySQL不允许(其它IP)从远程访问的方法

开启 MySQL 的远程登陆帐号有两大步: 1、确定服务器上的防火墙没有阻止 3306 端口。 MySQL 默认的端口是 3306 ,需要确定防火墙没有阻止 3306 端口,否则远程是无法通过 3...
  • sdmxdzb
  • sdmxdzb
  • 2015年09月14日 11:19
  • 8328

nginx限制某个IP同一时间段的访问次数

如何设置能限制某个IP某一时间段的访问次数是一个让人头疼的问题,特别面对恶意的ddos攻击的时候。其中CC攻击(Challenge Collapsar)是DDOS(分布式拒绝服务)的一种,也是一种常见...
  • gebitan505
  • gebitan505
  • 2013年12月27日 13:45
  • 11890

java 实现IP访问量控制

网站中发现有人恶意频繁的注册账号,打算在注册接口处增加效验工具,思路如下: 记录访问IP 和 时间 如果在五分钟内连续访问更新计时器更新计数器 10分钟内不访问计时器清零 思路很简单源码如下 ...
  • Uniquelike
  • Uniquelike
  • 2016年10月18日 15:05
  • 2656

nginx中如何限制某个IP同一时间段的访问次数

如何设置能限制某个IP某一时间段的访问次数是一个让人头疼的问题,特别面对恶意的ddos攻击的时候。其中CC攻击(Challenge  Collapsar)是DDOS(分布式拒绝服务)的一种,也是一种...
  • xj626852095
  • xj626852095
  • 2016年04月14日 22:51
  • 1949
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:限制客户端ip访问
举报原因:
原因补充:

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