11

アプリケーション サーバー Apache Tomcat 6.0 でPUT、DELETE、および TRACE HTTP 要求を無効にする必要があります。

私が今まで検索した他のすべてのソースは、 httpd.confの制限パラメーターに向けられました。したがって、Apache Webサーバーを使用していないこと、およびリクエストがTomcatによって直接処理されていることを事前に述べておきます。そのため、写真にhttpd.confはありません。

Tomcatでどうすればいいですか?

4

2 に答える 2

21

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>
于 2008-11-26T15:19:33.190 に答える
0

答えはサーブレットの仕様にあります。サーブレットのAPIを見ると:http://java.sun.com/products/servlet/2.5/docs/servlet-2_5-mr2/javax/servlet/http/HttpServlet.htmlさまざまなメソッドが処理することがわかりますさまざまな種類のHTTPリクエスト。また、サーブレットとフィルターの周りにいくつかのコードをラップするために使用できるフィルターと呼ばれる優れた機能があります。

したがって、解決策は次のとおりです。

  • doとgetのみをサポートするようにサーブレットを変更します。また
  • これらの他の種類のリクエストをクリアするためのフィルターを作成します。
于 2008-11-26T15:23:27.113 に答える