내가 필요해서 내가 적는 블로그

JAVA 백엔드 개발자의 기록들

SPRING

Refused to display 'http://localhost:8080/' in a frame because it set 'X-Frame-Options' to 'deny'. (feat. spring-security)

돌프 2022. 1. 10. 17:21
반응형

로컬에서 개발하다 웹페이지 로딩시 제목과 같은 에러가 났다. 

 

▶ 원인

   '클릭재킹'을 방지하기 위한 Spring Security 의 default 설정이 X-Frame-Options=deny 이다. 

   우리는 deny 값을 SAMEORIGIN 이라는 값으로 변경해주어야 한다. 

   ※ 클릭재킹(Clickjacking, User Interface redress attack, UI redress attack, UI redressing)은 웹 사용자가 자신이 클릭하고 있다고

     인지하는 것과 다른 어떤 것을 클릭하게 속이는 악의적인 기법으로써 잠재적으로 공격자는 비밀 정보를 유출시키거나 그들의

     컴퓨터에 대한 제어를 획득할 수 있게 된다. - 위키백과

 

▶ 조치

    * Spring Boot 는 properties 에 추가해주자. 
       - security.headers.frame=false

    * Spring Maven 의 경우엔 spring-security.xml에 <http>태그안에 헤더옵션을 추가해주자! 

       <http>           

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

       </http>

 

   * 구글서치를 해보면 tomcat 의 web.xml 에 SAMEORIGIN 옵션을 설정하는것으로 많이 나와있지만, 

      spring-security.xml에 위 태그를 넣으니 잘 동작되었다.  스프링 버전이 올라가면서 기존에 web.xml에 설정하던것이

      xml로 변경된 듯 하다. 

 

 

끝. 

 

 

본문 내용이 도움이 되셨다면, 아래의 공감버튼을 눌러주세요. 

정보 공유를 위한 포스팅에 큰 힘이 됩니다. 

만약 틀린 정보가 있으면 댓글 달아주세요. 수정하도록 하겠습니다. 

읽어주셔서 감사합니다. 오늘도 좋은 하루 보내세요. 

 

반응형