복붙노트

[SPRING] Spring Security에서 'X-Frame-Options'응답 헤더를 비활성화하는 방법은 무엇입니까?

SPRING

Spring Security에서 'X-Frame-Options'응답 헤더를 비활성화하는 방법은 무엇입니까?

나는 내 JSP에 CKeditor를 가지고 있으며, 무언가를 업로드 할 때마다 다음과 같은 오류가 발생한다.

 Refused to display 'http://localhost:8080/xxx/xxx/upload-image?CKEditor=text&CKEditorFuncNum=1&langCode=ru' in a frame because it set 'X-Frame-Options' to 'DENY'.

나는 Spring Security를 ​​제거하려고 노력했으며 모든 것이 매력처럼 작동합니다. 스프링 보안 xml 파일에서 이것을 어떻게 비활성화 할 수 있습니까? 태그 사이에 무엇을 써야합니까?

해결법

  1. ==============================

    1.기본적으로 X-Frame-Options는 클릭 잭킹 공격을 막기 위해 거부 됨으로 설정됩니다. 이것을 덮어 쓰려면 스프링 보안 설정에 다음을 추가하면됩니다.

    기본적으로 X-Frame-Options는 클릭 잭킹 공격을 막기 위해 거부 됨으로 설정됩니다. 이것을 덮어 쓰려면 스프링 보안 설정에 다음을 추가하면됩니다.

    <http>    
        <headers>
            <frame-options policy="SAMEORIGIN"/>
        </headers>
    </http>
    

    정책에 사용할 수있는 옵션은 다음과 같습니다.

    자세한 내용은 여기를보십시오.

    여기서는 XML 또는 Java 구성을 사용하여 헤더를 구성하는 방법을 확인합니다.

    필요에 따라 적절한 전략을 지정해야 할 수도 있습니다.

  2. ==============================

    2.XML 구성 대신 Java 구성을 사용하는 경우이를 "WebSecurityConfigurerAdapter.configure (HttpSecurity http)"메소드에 넣으십시오.

    XML 구성 대신 Java 구성을 사용하는 경우이를 "WebSecurityConfigurerAdapter.configure (HttpSecurity http)"메소드에 넣으십시오.

    http.headers().frameOptions().disable();
    
  3. ==============================

    3.대부분이 헤더를 완전히 비활성화하고 싶지는 않지만 SAMEORIGIN을 사용하십시오. Java Config (Spring Boot)를 사용하고 X-Frame-Options : SAMEORIGIN을 허용하려면 다음을 사용해야합니다.

    대부분이 헤더를 완전히 비활성화하고 싶지는 않지만 SAMEORIGIN을 사용하십시오. Java Config (Spring Boot)를 사용하고 X-Frame-Options : SAMEORIGIN을 허용하려면 다음을 사용해야합니다.

    이전 스프링 보안 버전 :

    http
       .headers()
           .addHeaderWriter(new XFrameOptionsHeaderWriter(XFrameOptionsHeaderWriter.XFrameOptionsMode.SAMEORIGIN))
    

    Spring Security 4.0.2와 같은 새로운 버전의 경우 :

    http
       .headers()
          .frameOptions()
             .sameOrigin();
    
  4. ==============================

    4.XML 구성을 사용하는 경우

    XML 구성을 사용하는 경우

    <beans xmlns="http://www.springframework.org/schema/beans" 
           xmlns:security="http://www.springframework.org/schema/security"> 
    <security:http>
        <security:headers>
             <security:frame-options disabled="true"></security:frame-options>
        </security:headers>
    </security:http>
    </beans>
    
  5. ==============================

    5.Spring Boot를 사용한다면, Spring Security 기본 헤더를 비활성화하는 가장 간단한 방법은 security.headers. * 속성을 사용하는 것입니다. 특히 X-Frame-Options 기본 헤더를 비활성화하려면 application.properties에 다음을 추가하십시오.

    Spring Boot를 사용한다면, Spring Security 기본 헤더를 비활성화하는 가장 간단한 방법은 security.headers. * 속성을 사용하는 것입니다. 특히 X-Frame-Options 기본 헤더를 비활성화하려면 application.properties에 다음을 추가하십시오.

    security.headers.frame=false
    

    사용할 수있는 security.headers.cache, security.headers.content-type, security.headers.hsts 및 security.headers.xss 속성도 있습니다. 자세한 내용은 SecurityProperties를 참조하십시오.

  6. ==============================

    6.스프링 시큐리티의 자바 설정을 사용한다면 기본적으로 모든 기본 보안 헤더가 추가된다. 아래 자바 구성을 사용하여 비활성화 할 수 있습니다.

    스프링 시큐리티의 자바 설정을 사용한다면 기본적으로 모든 기본 보안 헤더가 추가된다. 아래 자바 구성을 사용하여 비활성화 할 수 있습니다.

    @EnableWebSecurity
    @Configuration
    public class WebSecurityConfig extends
       WebSecurityConfigurerAdapter {
    
      @Override
      protected void configure(HttpSecurity http) throws Exception {
        http
          .headers().disable()
          ...;
      }
    }
    
  7. from https://stackoverflow.com/questions/28647136/how-to-disable-x-frame-options-response-header-in-spring-security by cc-by-sa and MIT license