기본 콘텐츠로 건너뛰기

새창으로 링크 경로 사용 시 탭 내빙(Tab nabbing) 공격 방지, 취약점 보완, a 태그, target="_blank", noopener, noreferrer - html, 보안코딩

a 태그에서 target이 _blank 일 때 생길 수 있는 취약점 보완하기, 탭 내빙(Tab nabbing) 공격 방지, 보안코딩, noopener, noreferrer


a 태그, target="_blank" 일 때 취약점 보완

<a href="링크경로" target="_blank" rel="noopener noreferrer">link title</a>

a 태그의 target="_blank" 문제점

보안상 취약점

  • 새창으로 열린 페이지에서 window.opener로 부모 페이지(새창을 연 페이지)에 접근해 window.opener.location=나쁜경로로 부모 페이지의 url을 바꿔칠 수 있다.(예: url에서 한글자만 다른 스캠사이트 등)
  • 스캠사이트로 바뀐 url을 인지하지 못하고 개인정보를 입력하게 되면 보안상 심각한 문제가 발생할 수 있다.

성능 저하

  • 새창으로 열린 페이지는 부모창과 같은 프로세서를 통해 실행된다.
  • 새창에서 javascript로 많은 퍼포먼스를 표현한다면 그 만큼 부모창에 영향을 주게되어 느려질 수 있다.

a 태그를 사용할 때, target의 속성값으로 _blank를 지정한다면
rel="noopener noreferrer"를 추가하는 것을 기본으로 생각하자.


window.open 에선 아래와 같이 작성한다.
window.open("/경로", "_blank", "left=0, top=0, width=1100, height=800, toolbar=no, status=no, menubar=no, location=no, noopener, noreferrer");


끝.