URL перезаписать отсутствующие параметры X-Frame в заголовке - PullRequest
0 голосов
/ 04 декабря 2018

Я использую Tomcat 8 и Tuckey urlrewrite, чтобы удалить «.jsp» из URL моей веб-страницы.Работает нормально, но я заметил, что X-Frame-Options в заголовке ответа отсутствуют, когда urlrewrite перенаправляет со страницы.mysite.com/Home переводится как mysite.com/Home.jsp, но параметры X-Frame не установлены.Они установлены для всех страниц, которые я исключаю из urlrewirte, таких как mysite.com/picture.png.Любое руководство будет оценено.

Web.xml

  <filter>
    <filter-name>UrlRewriteFilter</filter-name>
    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
  </filter>

  <filter-mapping>
    <filter-name>UrlRewriteFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
  </filter-mapping>

<filter>
    <filter-name>httpHeaderSecurity</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>
    <init-param>
      <param-name>antiClickJackingEnabled</param-name>
      <param-value>true</param-value>
    </init-param>
</filter>



urlrewrite.xml:


<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE urlrewrite
    PUBLIC "-//tuckey.org//DTD UrlRewrite 4.0//EN"
    "http://www.tuckey.org/res/dtds/urlrewrite4.0.dtd">

<urlrewrite>
    <rule match-type="regex">
        <condition type="request-url" operator="notequal">jsp$</condition>
        <condition type="request-url" operator="notequal">html$</condition>
        <condition type="request-url" operator="notequal">pdf$</condition>
        <condition type="request-url" operator="notequal">txt$</condition>
        <condition type="request-url" operator="notequal">apk$</condition>
        <condition type="request-url" operator="notequal">app$</condition>
        <condition type="request-url" operator="notequal">zip$</condition>

        <condition type="request-url" operator="notequal">avi$</condition>
        <condition type="request-url" operator="notequal">flv$</condition>
        <condition type="request-url" operator="notequal">mp4$</condition>
        <condition type="request-url" operator="notequal">mov$</condition>
        <condition type="request-url" operator="notequal">wmv$</condition>
        <condition type="request-url" operator="notequal">mp3$</condition>
        <condition type="request-url" operator="notequal">wav$</condition>
        <condition type="request-url" operator="notequal">jpg$</condition>
        <condition type="request-url" operator="notequal">png$</condition>

        <condition type="request-url" operator="notequal">/media/.*</condition>
        <condition type="request-url" operator="notequal">/css/.*</condition>
        <condition type="request-url" operator="notequal">/img/.*</condition>
        <condition type="request-url" operator="notequal">/js/.*</condition>

        <!-- negative look foward and back expresion to foward match pages that do not end in .jsp -->
        <from>/.+(?:(?!jsp).).$</from>
        <to type="forward">%{request-uri}.jsp</to>
    </rule>
</urlrewrite>

1 Ответ

0 голосов
/ 07 декабря 2018

Таким образом, проблема не в перезаписи URL, а в фильтре httpSecurityHeader, который содержит параметры x-frame-option.После добавления сопоставления «/ *» для каждого файла теперь установлены параметры antiClickJacking.Ниже приведены настройки web.xml, которые делают это.

<filter>
    <filter-name>httpHeaderSecurity</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>
    <init-param>
      <param-name>antiClickJackingEnabled</param-name>
      <param-value>true</param-value>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>httpHeaderSecurity</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
...