Topic: 给Tomcat写了一个可能有点另类的过滤器.提交到Tomcat 的bug里被拒了 :(

  Print this page

1.给Tomcat写了一个可能有点另类的过滤器.提交到Tomcat 的bug里被拒了 :( Copy to clipboard
Posted by: bluepure
Posted on: 2005-02-19 11:17

思路来源:

如果想禁止指定的ip或者主机名来拒绝某些机器访问,或者指定某些机器来访问。Tomcat 通过在server.xml里设置,支持分别按Engine, Host, or Context,进行以下配置:
<Context path="/examples" ...> ...
<Valve className="org.apache.catalina.valves.RemoteHostValve"
allow="*.mycompany.com,www.yourcompany.com"/>
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
deny="192.168.1.*"/>
</Context>
( see http://jakarta.apache.org/tomcat/tomcat-5.5-doc/config/valve.html)

于是我订制了一个过滤器,实现对 Http header的检查,
可以用来禁止 user-agent里包含 "httpunit"字样的客户端的访问,这样可以从某种程度上防止机器人程序的攻击。

具体的代码在 :

http://issues.apache.org/bugzilla/show_bug.cgi?id=33632

结果被认为太简单了,而且说要自己在过滤器里去做,被拒了:(

同时根据这个思路,我又写了一个过滤器,用来代替平时的Charset的过滤器。
这样就可以不用每个webapp里去设置过滤器了,直接在Tomcat上一劳永逸的搞定:

具体可以参看:

http://issues.apache.org/bugzilla/show_bug.cgi?id=32795

对了,Tomcat的示例里:
D:\jakarta-tomcat-5.5.7\webapps\servlets-examples\WEB-INF\web.xml

里被日本人强制指定默认值为日文编码了,FT!!!!!!!!!!!!!!!!!!!!!!!!!!!

<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>EUC_JP</param-value>
</init-param>
</filter>

2.Re:给Tomcat写了一个可能有点另类的过滤器.提交到Tomcat 的bug里被拒了 :( [Re: bluepure] Copy to clipboard
Posted by: bluepure
Posted on: 2005-02-19 11:47

我把这两段代码放到我的blog里了。

为Tomcat写了一个增强的可以限制浏览器和防盗链过滤器提交到Tomcat的bug里被拒了:(
http://blog.csdn.net/lizongbo/archive/2005/02/19/293569.aspx

解决Tomcat 编码问题的Character Encoding 另类过滤器实现.
http://blog.csdn.net/lizongbo/archive/2005/02/19/293555.aspx


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923