[html] target =“_ blank”및 rel =“noopener noreferrer”와의 링크가 여전히 취약합니까?

나는 사람들 target="_blank"이 링크를 사용 하여 다른 창에서 열 때마다 rel="noopener noreferrer". 예를 들어 Chrome에서 개발자 도구를 사용하고 rel 속성을 제거하지 못하는 이유가 궁금합니다. 그런 다음 링크를 클릭합니다 …

여전히 취약성을 유지하는 쉬운 방법입니까?



답변

취약점을 오해하고있을 수 있습니다. 여기에서 자세한 내용을 읽을 수 있습니다. https://www.jitbit.com/alexblog/256-targetblank—the-most-underestimated-vulnerability-ever/

기본적 rel="noopener noreferrer"으로 링크 에 추가 하면 링크 한 사이트 잠재적으로 브라우저를 가로채는 (악성 JS를 통해) 사이트의 사용자를 보호합니다 .

개발자 도구를 통해 해당 속성을 제거하는 것에 대해 질문하고 있습니다.이 경우 잠재적으로 사용자 (속성을 조작하는 사람) 만 취약성에 노출됩니다.


답변

target="_blank"그들 과의 링크 는 새로 열린 탭에 의해 사용자의 관심이 전환되는 동안 백그라운드에서 참조 페이지가 교체되는 데 취약 합니다. 이를 리버스 탭핑이라고합니다 .

악성 흐름의 예

참조 페이지는에 저장되며 window.opener악성 사이트는 다음을 통해이를 수정할 수 있습니다.

if (window.opener) {
   window.opener.location = "https://phish.example.com";
}

추가하면 rel="noopener noreferrer"모든 주요 브라우저에서이 취약점이 수정됩니다.

이론적으로는 조작을 통해 rel 클라이언트 측 을 제거 할 수 있습니다 .하지만 왜 그렇게 하시겠습니까? 당신이하는 일은 의도적으로 공격에 취약하게 만드는 것뿐입니다.

동일한 웹 사이트를 방문하는 다른 사용자 (자신의 클라이언트 측 코드를 수정하지 않음)는 서버가 여전히 rel="noopener noreferrer". 귀하의 제거는 귀하에게만 적용됩니다.


답변

앵커 태그 rel=”noopener”또는 rel=”noreferrer”속성은 웹 사이트 보안을 개선하지만 일부 사람들은 웹 사이트 검색 엔진 최적화에 영향을 미칠 것이라고 생각하기 때문에이를 무시하고 싶어하지만 이는 단지 신화 일뿐입니다. 웹 사이트 청중의 기밀을 보호하고 악성 코드를 유포하여 외부 웹 사이트를 차단합니다.


답변

개발자 콘솔에에 대한 경고가 표시되는 경우 및 rel을 noopener noreferrer모두 추가해야합니다 . 링크는 다음과 같아야합니다.noopenernoreferrer

<a href="www.google.com" target="_blank" rel="noopener noreferrer" />


답변