Apache Tomcat 6.0でPUT TRACE DELETEリクエストを無効にする
-
11-07-2019 - |
質問
PUTを無効にし、DELETE <!> amp;アプリケーションサーバーApache Tomcat 6.0でのHTTP要求のトレース。
他のすべてのソースは、これまで検索してきましたが、 httpd.conf のlimitパラメーターに向けて指示しているため、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要求。また、フィルターと呼ばれるすばらしい機能があり、これを使用して、サーブレットとフィルターの周りにいくつかのコードをラップできます。
ソリューションは次のとおりです。
- doおよびgetのみをサポートするようにサーブレットを変更します。または
- 他の種類のリクエストをクリアするフィルターを作成します。
所属していません StackOverflow