a 태그의 속성 중 target 을 사용할 때는 rel="noreferrer" 속성을 추가해서 함께 사용해야한다.
리액트 JSX에도 a태그를 사용하는데 읽고 있는 책에서 target 과 noreferrer, noopener 속성이 같이 있어서 어떤 연관이 있는지 알아보게 되었다.
[MDN]
링크한 URL을 표시할 위치. 가능한 값은 브라우징 맥락으로, 즉 탭, 창, <iframe>의 이름이나 특정 키워드입니다. 다음 키워드는 특별한 뜻을 가지고 있습니다.
- _self: URL을 현재 브라우징 맥락에 표시합니다. 기본값.
- _blank: URL을 새로운 브라우징 맥락에 표시합니다. 보통 새 탭이지만, 사용자가 브라우저 설정을 통해 새 창으로 바꿀 수 있습니다.
- _parent: URL을 현재 브라우징 맥락의 부모에 표시합니다. 부모가 존재하지 않으면 _self와 동일하게 행동합니다.
- _top: URL을 최상단 브라우징 맥락(현재 맥락의 부모면서 자신의 부모가 존재하지 않는, 제일 높은 맥락)에 표시합니다. 부모가 존재하지 않으면 _self와 동일하게 행동합니다.
최근의 브라우저(Firefox 79+ 등)에서는 target="_blank"를 지정하면 rel="noopener"를 적용한 것과 같은 동작을 한다고 한다.
즉 target의 속성값으로 _blank를 지정할 때는 rel="noreferrer noopener"를 추가해야한다. 링크된 페이지를 열면 referrer(이전 페이지)와 opener(새 페이지를 연 사람) 정보가 생기는데 두 정보를 아예 없앨 수 있다.
'Computer Programming > React' 카테고리의 다른 글
리덕스 프로젝트 구조 - Dumb & Smart (Presentational 컴포넌트와 Container 컴포넌트의 분리) (0) | 2023.06.27 |
---|---|
TIL - Redux 기초 (0) | 2023.06.26 |
리액트의 렌더링 순서와 렌더링 최적화하는 법 (memoization을 통해 불필요한 리렌더링 해결하기!) (2) | 2023.05.20 |
React 앱에서 Redux 사용예시 (Counter App) (0) | 2023.05.18 |
Redux 시작하기 / 기본 구조 (Reducer, Subscribe, Dispatch란?) (0) | 2023.05.17 |