Http 在Apache Tomcat 6.0中禁用PUT跟踪删除请求

Http 在Apache Tomcat 6.0中禁用PUT跟踪删除请求,http,tomcat,application-server,security-constraint,Http,Tomcat,Application Server,Security Constraint,我需要在我的应用服务器Apache Tomcat 6.0上禁用PUT、DELETE和TRACE HTTP请求 到目前为止,我搜索过的所有其他来源都将我引向了httpd.conf中的limit参数,因此我事先声明我没有使用ApacheWeb服务器,请求直接由Tomcat处理,因此图片中没有httpd.conf 请建议如何在Tomcat上执行此操作?在您的WEBINF中,添加您可以添加安全约束: 被禁止的 /废话/* 放 删除 痕迹 空角色 或者,您可以做以下两件事: 在server.xml中,

我需要在我的应用服务器Apache Tomcat 6.0上禁用PUT、DELETE和TRACE HTTP请求

到目前为止,我搜索过的所有其他来源都将我引向了httpd.conf中的limit参数,因此我事先声明我没有使用ApacheWeb服务器,请求直接由Tomcat处理,因此图片中没有httpd.conf


请建议如何在Tomcat上执行此操作?

在您的WEBINF中,添加您可以添加安全约束:


被禁止的
/废话/*
放
删除
痕迹
空角色
或者,您可以做以下两件事:

在server.xml中,编辑
元素,添加一个属性:
allowTrace=“false”
。然后编辑DefaultServlet:$CATALINA_HOME/conf/web.xml


违约
org.apache.catalina.servlets.DefaultServlet
只读
真的

答案在于servlet规范。在查看servlet的API时:您将看到不同的方法处理不同类型的HTTP请求。此外,还有一个称为过滤器的强大功能,可用于围绕servlet和过滤器包装一些代码

因此,解决办法是:

  • 修改servlet,使其仅支持do和get;或
  • 创建一个筛选器以清除其他类型的请求

修改servlet充其量只是一个冒险的提议。可能无法修改框架覆盖doPut、doDelete等。另外,它需要修改每个servlet,这是一个容易出错的过程。过滤器可能是一种更好的方法,并且提供了最多的控制。谢谢James,如果我将它添加到服务器的web.inf而不是应用程序的web.inf中,应该是什么?(WEBROOT\conf\web.xml)