X-Frame-Options
security 버전이 올라가면서 생기는 변화로 인한 문제. Click jacking 은 무엇일까?
1. X-Frame-Options 와 Spring security
웹소켓을 이용해 실시간 채팅 프로그램을 만들었는데, 실행해보니 다음과 같은 에러가 나타났다. 이유를 찾아보니 spring security 버전 4.0.x
이상 부터는 기본적으로 X-Frame-Options Click jacking 공격을 막아주는 설정을 하도록 되어있기 때문이였다.
2. Clickjacking 공격이란?
간단히 말하면 어떤 웹 페이지 혹은 버튼을 클릭하지만 실제로는 다른 페이지의 컨텐츠를 클릭하게되는 것을 말한다.
2.1. 해결방안
X-Frame-Options 종류로는 아래 3가지가 있다.
DENY
: 해당 페이지는 frame 을 표시할 수 없음 (에러의 원인)SAMEORIGIN
: 해당 페이지와 동일한 origin 에 해당하는 frame 만 표시가능ALLOW-FROM uri
: 해당 페이지는 지정된 origin 에 해당하는 frame 만 표시
우리 프로젝트의 경우 스프링 시큐리티 5.7.6 버전을 쓰고있기 때문에 이런 에러가 발생했고, 이중에서 두번째 옵션을 이용하여 해결하였다.

1
2
3
4
5
6
7
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
...
http.headers()
.frameOptions().sameOrigin().and();
...
}
This post is licensed under
CC BY 4.0
by the author.