Web&Spring2020. 11. 27. 09:44

 

 

 

 

 

 

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

Uncaught DOMException: Blocked a frame with origin "http://localhost:8080" from accessing a cross-origin frame.

이런 에러가 발생하였다.

스프링 시큐리티를 적용하고, 보안 정책 준수 강화로 인해서 ajaxUpload 플러그인이 막히는 상황이었다.

잘되던 파일 업로드가 cors에 막혀버리는 이런 불상사가.._ㅜ

X-Frame-Options를 deny했기때문에 이런 오류가 뜬거라고 나오는것이고..

스프링 시큐리티에서는 기본적으로 X-Frame-Options Click jacking 공격 막기 설정이 되어있기 때문에 이런 오류가 발생하는것이다.

X-FRAME-Options 옵션에 아래 3가지 값 중에서 하나를 지정할 수 있다.

 

1. DENY : 페이지를 frame 내에서 표시할 수 없다.

​

2. SAMEORIGIN : 동일한 origin인 경우 페이지를 frame 내에서 표시할 수 있다.

​

3. ALLOW-FROM uri : 지정된 origin의 페이지를 frame 내에서 표시할 수 있다.

 

 

쉽게말해, 다른사이트를 함부로 내 사이트로 안가져오겠다는 정책인데..

iFrame을 내부적으로 이용하는 등의 라이브러리에서 동작을 하지 않을 수 있는 이 요청 보안 정책 수정방법은..

다른 방법도 많지만..스프링 시큐리티 적용을 해서 진행중이 내 프로젝트에선 같은 주소에서 요청을 하는 경우에는 받아들여지도록 spring-security.xml 파일을 수정해주는 것으로 해결하였다.

 

 

 

Posted by 사슴영혼'-'