8P by xguru 2020-11-16 | favorite | 댓글 3개

- target="_blank" 로 새창 열었을 때, 원본 페이지에 접근 가능한 보안문제 회피를 위해 강제로 rel="noopener" 가 적용된 것처럼 동작하게 변경
- 사파리는 이미 2018년에 적용
- MS Edge 개발자가 이 기능을 Chromium에 추가해서 Edge/Chrome/Brave 등 모든 브라우저에 적용됨
- 크롬 Canary 에는 추가되었고 2021년 1월에 나올 크롬 88에서 공식 배포 예정

기존처럼 새 창에서 부모창에 액세스하려면 a태그에 rel="opener" 속성을 추가해야 하는군요.
유지보수가 안되는 사이트들에서는 해당 기능을 사용하면 문제가 좀 되겠내요.

개인적으로 부모창과 자식창 간 연동을 위해서 저는 아래와 같이 팝업을 오픈하고 있습니다.

var childWin = window.open("", "childWin");
childWin.location.href = "https://news.hada.io";

이렇게 하면 부모창, 자식창 모두 페이지가 바뀌어도 서로 컨트롤이 가능하거든요.
플레이어를 팝업으로 띄울 때 이렇게 사용하곤 합니다.

이 이슈는 새 창을 열었을 때 그 새 URL의 자바스크립트가 나쁜맘을 먹으면 오리지널 페이지를 다른 곳(피싱사이트 등)으로 보내버릴수 있는 것입니다.
사용자가 본문/코멘트 등으로 URL을 등록할 수 있는 사이트에서 발생할 수 있구요.
이걸 막으려면 지금부터라도 target 사용시 rel="noopener"를 추가해 주는게 좋습니다.

* 긱뉴스는 새 창 열기가 아예 없어서 적용하지 않았습니다. ^^;