我使用Jboss 4.2.3作为appserver。有没有办法限制JBoss接受的HTTP Post请求的大小?我想限制大小以避免DOS攻击。
我已经在server.xml中使用了maxHttpHeaderSize和maxPostSize,但它们似乎都没有任何区别。
答案 0 :(得分:3)
maxPostSize
定义了在Tomcat“自动”解析它之前可以获得多大的POST,无论这意味着什么。
如果出于安全原因这样做,您需要三思而后行。 DOS攻击不会方便地宣布其大小为HTTP请求标头,它只是发送数据直到您的服务器崩溃。
你可以检查请求的Content-Length
标头,如果它不存在或者太大,立即拒绝它,但你冒着拒绝真正的客户端的风险提供标题,许多人不会。
否则,您只需要读取请求数据,直到超过阈值,然后拒绝它。
无论哪种方式,容器都无法帮到你。
答案 1 :(得分:0)
Tomcat接受$JBOSS_HOME/server/default/deploy/jbossweb-tomcat55.sar/server.xml
中的HTTP请求,您可以将maxHttpHeaderSize
配置为Connector
标记的属性。
答案 2 :(得分:0)
对于Jboss,您应该在配置文件中进行配置(例如:standalone-full.xml),如下所示: max-post-size =“ 26214400” 表示25MB
<subsystem xmlns="urn:jboss:domain:undertow:3.1">
<buffer-cache name="default"/>
<server name="default-server">
<http-listener name="default" max-post-size="26214400" socket-binding="http" redirect-socket="https"/>
<host name="default-host" alias="localhost">
<location name="/" handler="welcome-content"/>
<filter-ref name="server-header"/>
<filter-ref name="x-powered-by-header"/>
</host>
</server>
<servlet-container name="default">
<jsp-config/>
<websockets/>
</servlet-container>
<handlers>
<file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
</handlers>
<filters>
<response-header name="server-header" header-name="Server" header-value="JBoss-EAP/7"/>
<response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>
</filters>
</subsystem>