[giruboy]target="_blank" 로 알아보는 tabnabbing

최길우·2022년 9월 30일
0

브라우저에서 링크를 클릭 시 현재 탭에서 새로운 페이지로 전환 되는 것이 아닌 새로운 창을 열어 사용자의 불편함을 덜어 줄 수있는 target="_blank"는 굉장히 간편하고 쉬운 기능이다. 하지만 이는 약간의 주의 해야 할점이 있는데 tabnabbing 피싱 공격에 노출 될 수 있다는 점이다.

<a href="https://www.example.com" target="_blank">

MDN에서도 target을 사용할 때, rel="noreferrer noopener"를 추가해 window.opener API의 악의적인 공격을 방지하라고 권고하는 내용을 찾아볼 수 있다.

Tabnabbing 이란?

target="_blank"에 의해 열린 새 페이지에서 window.opener.location을 변경하여, 기존 페이지를 피싱 페이지로 변경해 사용자 정보를 탈취하는 것이다. 이러한 피싱이 가능한 이유는 기본적으로 새 탭을 열면 현재 탭을 열었던 탭의 참조를 반환하기 때문인데, 이 참조를 없애는 방법이 바로 rel="noreferrer noopener"를 추가하는 것이다.

그래서 이전까지는 rel="noreferrer noopener" 추가를 하였지만 모든 최신 버전의 주요 브라우저는 이제 rel="noopener"의 모든 target="_blank" 링크에 대해 동작을 자동으로 사용하여 이 문제를 무효화한다고한다. 참조
따라서 생성된 창의 opener 속성에 접근해도 null을 반환 할 수 있다.

profile
성장하는 개발자

0개의 댓글