Post

X-Frame-Options

security 버전이 올라가면서 생기는 변화로 인한 문제. Click jacking 은 무엇일까?

1. X-Frame-Options 와 Spring security

웹소켓을 이용해 실시간 채팅 프로그램을 만들었는데, 실행해보니 다음과 같은 에러가 나타났다. 이유를 찾아보니 spring security 버전 4.0.x 이상 부터는 기본적으로 X-Frame-Options Click jacking 공격을 막아주는 설정을 하도록 되어있기 때문이였다.



2. Clickjacking 공격이란?

Clickjacking 공격 wiki

간단히 말하면 어떤 웹 페이지 혹은 버튼을 클릭하지만 실제로는 다른 페이지의 컨텐츠를 클릭하게되는 것을 말한다.

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.