매우 간단하기 때문에 해보자. Tomcat의 취약성 대책

4907 단어 자바Tomcat보안

1. 처음에



취약점 대책으로 HTTP 응답 헤더
X-Content-Type-Options:nosniff
X-Frame-Options:DENY
X-XSS-Protection:1; mode=block
※각 헤더의 의미와 효과에 대해서는 할애
설정하는 데 apache와 .htaccess로 설정하는 것이 번거로움 (서버가 여러 대 있으면 힘들어)이며 서버를 이사했을 때 설정을 새는 것도 싫다고 생각하고 war 안에 포함 버리는 방법은 없을까라고 생각해 조사해 보면 있었으므로 소개합니다.

또한이 기능을 사용하려면
Apache Tomcat 8.0.24 이상
Apache Tomcat 7.0.63 이상
필요하므로주의하시기 바랍니다.

2. web.xml 설정



WebContent/WEB-INF/web.xml에 다음 설명을 추가하기만 하면 됩니다.
  <filter>
    <filter-name>SecurityFilter</filter-name>
    <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>SecurityFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

응용 프로그램 서버를 시작하고 액세스해 봅니다.



응답에 제대로 추가되어 있는 것을 확인할 수 있었습니다(^^)/

3. 응용



또한 web.xml에 추가한 filter를 커스터마이즈 하는 것으로 응답 헤더의 내용을 커스터마이즈 할 수 있습니다.

■ 특정 헤더 사용 안함


<init-param>~</init-param> 에서 유효 무효를 지정할 수 있습니다.
  <filter>
    <filter-name>SecurityFilter</filter-name>
    <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
    <init-param>
      <param-name>antiClickJackingEnabled</param-name>
      <param-value>false</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>SecurityFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

결과



클릭 재킹 대책의 「X-Frame-Options:DENY」가 사라졌습니다.
<param-name> 로 설정하는 이름은 이하 URL을 참고하면 어쩐지 알 수 있다고 생각합니다만,
htps : // 및 m 또는 t. 아파치. 오 rg / m 또는 t-8. r. HTML
  • antiClickJackingEnabled
    → X-Frame-Options:DENY
  • blockContentTypeSniffingEnabled
    → X-Content-Type-Options:nosniff
  • xssProtectionEnabled
    → X-XSS-Protection:1; mode=block

  • 각각 대응해야합니다 (모두 시도하지 않았습니다).

    ■ 헤더의 매개 변수 사용자 정의



    예를 들면
    X-Frame-Options:DENY

    X-Frame-Options:SAMEORIGIN
    로 바꾸고 싶을 때.<init-param>~</init-param> 에서 옵션을 지정할 수 있습니다.
      <filter>
        <filter-name>SecurityFilter</filter-name>
        <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
        <init-param>
          <param-name>antiClickJackingOption</param-name>
          <param-value>SAMEORIGIN</param-value>
        </init-param>
      </filter>
      <filter-mapping>
        <filter-name>SecurityFilter</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>
    

    결과



    X-Frame-Options:SAMEORIGIN이 확인되었습니다.

    이상입니다.<url-pattern> 를 고안하면 특정 URL이나 확장자만 필터링할 수 있습니다. 여러가지 시험해 주세요(^^)/

    좋은 웹페이지 즐겨찾기