혼자 적어보는 노트

target="_blank"의 문제점 / noopener noreferrer 사용 본문

기타

target="_blank"의 문제점 / noopener noreferrer 사용

jinist 2022. 3. 1. 04:31

보통 새 탭 열기 링크를 만들 때 target = "_blank"를 사용하게 되는데

target="_blank"만 사용하면 보안상 취약점이 생기고 퍼포먼스가 떨어질 우려가 있다는 것을 알게되었다.

 

JavsScript에서 windoe.opener로 부모 윈도우의 오브젝트에 접근하여 부모 윈도우의 URL을 바꿀경우

부적절한 페이지로 리디렉션을 하는 등 보안 상의 문제가 발생 할 수 있다.

 

그리고 _blank로 링크를 열 경우 링크를 건 페이지와 같은 프로세스를 통해 실행되는데

링크를 건 페이지가 부하가 높은 페이지일 경우 링크된 페이지에도 적용이되어 퍼포먼스가 떨어질 우려가 있다.

 

문제 해결을 위해 noopner, noreferrer를 사용하자.

<a href="URL" target="_blank" rel="noopener noreferrer"></a>

noopener : 링크된 페이지에서 window.opener를 사용하여 링크를 건 페이지를 참조할 수 없게되며,

링크된 페이지와 링크를 건 페이지는 별개의 프로세스로 실행이 된다.

 

noreferrer : 다른 페이지로 이동할 때 링크를 건 페이지의 주소 등의 정보를

브라우저가 Referer: HTTP 헤더로 리퍼러(referer 또는 referrer)로서 송신하지 않는다.

 

 

참고 : https://joshua-dev-story.blogspot.com/2020/12/html-rel-noopener-noreferrer.html

Comments