如何在Tomcat 7中禁用TRACE,OPTIONS http方法的测试

我正在尝试在Tomcat级别禁用TRACE和OPTIONS方法。我一直在尝试不同的方法来实现此目的,但是在测试过程中的所有情况下都得到相同的结果。我对telnet(或任何网络)不是很熟悉,但是我在cmd提示符下的测试方式是“

telnet localhost 8080”,然后粘贴TRACE / HTTP / 1.0,然后按Enter键两次。任何帮助是极大的赞赏。

1.) 在CATALINA_HOME / CONF / web.xml中

2.)在CATALINA_HOME / conf / web.xml中添加安全约束

<security-constraint>

<web-resource-collection>

<web-resource-name>All Access</web-resource-name>

<url-pattern>/*</url-pattern>

<http-method>OPTIONS</http-method>

<http-method>TRACE</http-method>

</web-resource-collection>

<auth-constraint />

</security-constraint>

3.)在CATALINA_HOME / conf / server.xml的Connector标记中添加allowTrace =“ false”

4.)在CATALINA_HOME / conf / server.xml的Connector标签中添加allowTrace =“

false”并将xml添加到CATALINA_HOME / conf / web.xml的Default Servlet标签中

<init-param>

<param-name>readonly</param-name>

<param-value>true</param-value>

</init-param>


跟踪/ HTTP / 1.0(找不到404)

选项/ HTTP / 1.0(找不到404)

TRACE /(Web服务名称)HTTP / 1.0(找到302)

选项/(网络服务名称)HTTP / 1.0(找到302)

每次更改后,Tomcat都会通过发出 shutdown.batstartup.bat来

重新启动。我显然做错了(测试/配置),因为无论更改什么,我都得到相同的结果。我读到我应该期待405错误来表示http方法已被禁用。

回答:

当您没有部署ROOT Web应用程序时,这些结果是预期的。如果您遵循重定向,则会获得对有效资源的302响应,您将开始看到405响应。

这取决于Tomcat执行各种检查的顺序,以及Mapper是处理请求的第一批组件之一(它确定将请求路由到的Host,Web应用程序和Servlet)。

前两个返回404,因为您没有默认的Web应用程序。Mapper会尽早返回404(以提高效率),因此您不会得到检查TRACE是否已启用的代码。

第二个2返回302s,因为映射器再次将/ web-service重定向到/ name-web-service

/。再次,这种情况尽早发生,并且再次发生在检查是否启用TRACE之前。

如果使用存在的路径进行测试,则应该看到期望的405。

以上是 如何在Tomcat 7中禁用TRACE,OPTIONS http方法的测试 的全部内容, 来源链接: utcz.com/qa/434973.html

回到顶部