# Nginx 0.5.17 이후 버전은 기본적으로 TRACE 비활성화
# 명시적으로 설정하려면:
server{if($request_method=TRACE){return405;}}
3. Tomcat 서버
WebDAV 비활성화:
1
2
3
4
5
6
7
8
9
10
<!-- server.xml 또는 context.xml --><!-- webdav 서블릿 제거 또는 readonly 설정 --><servlet><servlet-name>webdav</servlet-name><servlet-class>org.apache.catalina.servlets.WebdavServlet</servlet-class><init-param><param-name>readonly</param-name><param-value>true</param-value><!-- 쓰기 권한 제거 --></init-param></servlet>
TRACE 메소드 비활성화:
1
2
3
4
5
<!-- server.xml --><Connectorport="8080"protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"allowTrace="false"/><!-- 설정 제거 또는 false로 설정 -->
@ConfigurationpublicclassWebSecurityConfig{@BeanpublicFilterRegistrationBean<MethodFilter>methodFilter(){FilterRegistrationBean<MethodFilter>registration=newFilterRegistrationBean<>();registration.setFilter(newMethodFilter());registration.addUrlPatterns("/*");returnregistration;}}publicclassMethodFilterimplementsFilter{privatestaticfinalSet<String>ALLOWED_METHODS=Set.of("GET","POST","HEAD","OPTIONS");@OverridepublicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)throwsIOException,ServletException{HttpServletRequestreq=(HttpServletRequest)request;Stringmethod=req.getMethod();if(!ALLOWED_METHODS.contains(method)){((HttpServletResponse)response).sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED,"Method Not Allowed");return;}chain.doFilter(request,response);}}