Deaktivieren TRACE PUT DELETE Anfrage in Apache Tomcat 6.0
-
11-07-2019 - |
Frage
Ich muss deaktivieren PUT, DELETE & TRACE HTTP-Anforderungen auf meinem Application Server, Apache Tomcat 6.0.
Alle anderen Quellen, ich habe bis jetzt gesucht haben wies mich auf die Grenzparameter in httpd.conf , also ich es vor Hand legen würde, dass ich nicht Apache Web Server, und Anfragen werden direkt von Tomcat umgegangen werden, und so gibt es kein httpd.conf in Bild.
Bitte legen nahe, wie soll ich es auf Tomcat tun?
Lösung
In Ihrem WEBINF, fügen Sie eine Sicherheitsbeschränkung hinzufügen:
<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>
Alternativ können Sie diese zwei Dinge tun:
In server.xml, bearbeiten Sie die <connector>
Element, fügen Sie ein Attribut: allowTrace="false"
. Dann bearbeiten Sie die 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>
Andere Tipps
Die Antwort liegt in der Servlet-Spezifikation. Mit Blick auf die API für das Servlet: http://java.sun.com/products/servlet/2.5/docs/servlet-2_5-mr2/javax/servlet/http/HttpServlet.html Sie sehen, dass verschiedene Methoden behandeln andere Art von HTTP-Anfragen. Außerdem gibt es ein großes Feature namens Filter, die verwendet werden können, einige Code um Servlets und Filter zu wickeln.
So sind die Lösungen:
- Ändern Sie das Servlet nur Unterstützung tun und erhalten; oder
- Erstellen Sie einen Filter jene andere Art von Anfragen zu löschen.