2017-02-08 7 views
1

私はSpring Securityヘッダーを有効にしました。デフォルトでX-FRAME-OPTIONSDENYです。しかし、いくつかの回答についてはX-FRAME-OPTIONSSAMEORIGINとする必要があります。リクエストマッチャーを追加しようとしました。しかし、それは両方ともX-Frame-OptionsDENY,SAMEORIGIN)として追加されます。どのようにリクエストマッチャーのデフォルトの1つ(DENY)を避けるのですか?SpringセキュリティヘッダーのいくつかのページにX-FRAME-OPTIONSを追加する方法(Springバージョン4.2.0)?

私のコードは次のようである:

<security:headers disabled="false"> 
    <security:header ref="xFrameOptionsHeaderWriter"/> 
    <security:content-security-policy policy-directives="script-src 'self' 'unsafe-inline' 'unsafe-eval'" /> 
    <security:cache-control disabled="true"/> 
</security:headers> 


<bean id="xFrameOptionsHeaderWriter" class="org.springframework.security.web.header.writers.DelegatingRequestMatcherHeaderWriter"> 

    <constructor-arg> 
     <bean class="org.springframework.security.web.util.matcher.NegatedRequestMatcher"> 
      <constructor-arg> 
       <bean class="org.springframework.security.web.util.matcher.OrRequestMatcher"> 
        <constructor-arg> 
         <list> 
          <bean class="org.springframework.security.web.util.matcher.AntPathRequestMatcher"> 
           <constructor-arg value="/**/flows/javax.faces.resource/dynamiccontent.properties/**" /> 
          </bean>       
         </list> 
        </constructor-arg> 
       </bean> 
      </constructor-arg> 
     </bean> 
    </constructor-arg> 

    <constructor-arg> 
     <bean class="org.springframework.security.web.header.writers.frameoptions.XFrameOptionsHeaderWriter"> 
      <constructor-arg value="SAMEORIGIN"/> 
     </bean> 
    </constructor-arg> 
</bean> 

答えて

2

春のセキュリティのheader要素新しいHTTPヘッダが追加されますが、Spring Security Referenceを参照して、HTTPヘッダーを置き換えるものではありません:

41.1。 16 <ヘッダー>

応答のヘッダには、名前と値の両方を指定する必要があります。

あなたはフレームのオプションを無効にする必要があり、Spring Security Reference参照:

41.1.13 <フレームオプションが有効>

はレスポンスにX-フレーム・オプションヘッダを追加しますこれにより、新しいブラウザではセキュリティチェックを行い、クリックジャック攻撃を防ぐことができます。

あなたの修正春Securityヘッダーの設定:

<security:headers disabled="false"> 
    <security:frame-options disabled="true"/> 
    <security:header ref="xFrameOptionsHeaderWriter"/> 
    <security:content-security-policy policy-directives="script-src 'self' 'unsafe-inline' 'unsafe-eval'" /> 
    <security:cache-control disabled="true"/> 
</security:headers> 
関連する問題