アプリケーション サーバー Apache Tomcat 6.0 でPUT、DELETE、および TRACE HTTP 要求を無効にする必要があります。
私が今まで検索した他のすべてのソースは、 httpd.confの制限パラメーターに向けられました。したがって、Apache Webサーバーを使用していないこと、およびリクエストがTomcatによって直接処理されていることを事前に述べておきます。そのため、写真にhttpd.confはありません。
Tomcatでどうすればいいですか?
アプリケーション サーバー Apache Tomcat 6.0 でPUT、DELETE、および TRACE HTTP 要求を無効にする必要があります。
私が今まで検索した他のすべてのソースは、 httpd.confの制限パラメーターに向けられました。したがって、Apache Webサーバーを使用していないこと、およびリクエストがTomcatによって直接処理されていることを事前に述べておきます。そのため、写真にhttpd.confはありません。
Tomcatでどうすればいいですか?
WEBINF 内で、セキュリティ制約を追加できます。
<security-constraint>
<web-resource-collection>
<web-resource-name>Forbidden</web-resource-name>
<url-pattern>/blah/*</url-pattern>
<http-method>PUT</http-method>
<http-method>DELETE</http-method>
<http-method>TRACE</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>empty_role</role-name>
</auth-constraint>
</security-constraint>
または、次の 2 つのことを実行できます。
server.xml で、<connector>
要素を編集し、属性を追加します: allowTrace="false"
. 次に、DefaultServlet を編集します: $CATALINA_HOME/conf/web.xml
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>
org.apache.catalina.servlets.DefaultServlet
</servlet-class>
<!-- blah blah blah -->
<init-param>
<param-name>readonly</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
答えはサーブレットの仕様にあります。サーブレットのAPIを見ると:http://java.sun.com/products/servlet/2.5/docs/servlet-2_5-mr2/javax/servlet/http/HttpServlet.htmlさまざまなメソッドが処理することがわかりますさまざまな種類のHTTPリクエスト。また、サーブレットとフィルターの周りにいくつかのコードをラップするために使用できるフィルターと呼ばれる優れた機能があります。
したがって、解決策は次のとおりです。