window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster가 이미 존재합니다') } else { w.LeadBooster = { q: [], on: 함수 (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: 함수 (n) { this.q.push({ t: 't', n: n }) }, } } })() 웹 앱 보안. Target="_blank" 취약점 - The Codest
The Codest
  • 회사 소개
  • 서비스
    • 소프트웨어 개발
      • 프론트엔드 개발
      • 백엔드 개발
    • Staff Augmentation
      • 프론트엔드 개발자
      • 백엔드 개발자
      • 데이터 엔지니어
      • 클라우드 엔지니어
      • QA 엔지니어
      • 기타
    • IT 자문
      • 감사 및 컨설팅
  • 산업 분야
    • 핀테크 및 뱅킹
    • E-commerce
    • 애드테크
    • 헬스 테크
    • 제조
    • 물류
    • 자동차
    • IOT
  • 가치
    • CEO
    • CTO
    • 배달 관리자
  • 우리 팀
  • Case Studies
  • 방법 알아보기
    • 블로그
    • 모임
    • 웹 세미나
    • 리소스
채용 정보 연락하기
  • 회사 소개
  • 서비스
    • 소프트웨어 개발
      • 프론트엔드 개발
      • 백엔드 개발
    • Staff Augmentation
      • 프론트엔드 개발자
      • 백엔드 개발자
      • 데이터 엔지니어
      • 클라우드 엔지니어
      • QA 엔지니어
      • 기타
    • IT 자문
      • 감사 및 컨설팅
  • 가치
    • CEO
    • CTO
    • 배달 관리자
  • 우리 팀
  • Case Studies
  • 방법 알아보기
    • 블로그
    • 모임
    • 웹 세미나
    • 리소스
채용 정보 연락하기
뒤로 화살표 뒤로 가기
2021-04-28
소프트웨어 개발

웹 앱 보안. Target="_blank" 취약점

루카스 콜코

웹 애플리케이션 사용은 모든 사회에서 보편화되었습니다. 우리는 매일 웹 애플리케이션을 다루고 있습니다. 웹 애플리케이션은 우리를 둘러싸고 있다고 할 수 있습니다. 우리는 직장에서, 오락을 위해, 다른 사람들과 소통하기 위한 도구로 웹 애플리케이션을 사용합니다. 사용자와 개발자로서 우리는 이러한 애플리케이션에서 매일 얼마나 많은 보안 취약점이 발견되는지 깨닫지 못하는 경우가 많습니다.

최근 저희는 XSS 취약점과 관련된 웹 애플리케이션 보안. 이번에는 또 다른 위험에 대해 알려드리고자 합니다.

이 백서에서 논의된 취약점은 오랫동안 우리와 함께 해왔으며, 그 단순성 때문에 종종 과소평가되거나 심지어 알려지지 않은 경우도 있습니다. 웹 애플리케이션 개발자.

거의 모든 웹 애플리케이션에는 클릭하면 원래 페이지가 있는 탭이 닫히지 않도록 새 탭에서 열리는 링크가 포함되어 있습니다. 이는 제작자가 사용자가 애플리케이션에서 최대한 많은 시간을 보내기를 원하기 때문에 선호되는 동작입니다.

이 취약점을 악용하는 공격은 소위 "리버스 탭네이빙"입니다. 대상 페이지에서 링크된 페이지가 피싱 사이트 등으로 해당 페이지를 대체할 수 있는 공격입니다.

공격 시나리오

  1. 피해자가 target="_blank"를 통해 링크를 여는 것으로 알려진 Facebook을 사용한다고 가정해 보겠습니다,
  2. 가짜 바이럴 페이지를 만듭니다,
  3. Facebook 로그인 페이지처럼 보이는 피싱 웹사이트를 만듭니다,
  4. 아래 내용을 입력하세요. 코드 바이러스 페이지에서 발견된 XSS 취약점 등을 통해
    window.opener.location = 'https://phishing-website/facebook.com';
  5. 피해자가 Facebook에서 바이러스 페이지로 연결되는 링크를 클릭합니다,
  6. 바이럴 페이지는 페이스북 탭을 피싱 웹사이트로 리디렉션하여 사용자에게 다시 로그인할 것을 요청합니다.

따라서 웹 API에서 창 개체를 통해 감염된 대상 페이지의 상위 탭을 변경할 수 있습니다. 일반적으로 공격은 발견된 여러 취약점과 피싱 사기를 동시에 사용하는 방식으로 이루어집니다.

문제

링크를 사용하여 브라우저에서 새 탭을 열 때 target="_blank" 속성을 추가하면 새 탭에서 '리퍼러'에 액세스할 수 있습니다. 더 구체적으로 말하면 오프너 속성의 창 객체를 호출하면 해당 객체를 연 창, 즉 상위 페이지에 대한 참조를 반환합니다.

이는 창 열기() 함수. 이 속성에 액세스하면 상위 페이지를 쉽게 바꿀 수 있습니다. 일부 최신 브라우저에서는 window.opener 함수를 대상 탭에서 null 를 사용하여 이 동작을 방지할 수 있습니다.

코드 예시

<code> <a href="https://github.com" target="_blank">GitHub로 이동 - 감염된 링크</a>
const
 if (링크)
   link[0].onclick = () => { {
     if (window) window.opener.location = 'https://stackoverflow.com'
   }

위에서는 감염된 링크를 볼 수 있는데, 원래는 GitHub 페이지가 있는 새 탭이 열리지만 '부모' 페이지가 Stackoverflow 사이트로 변경됩니다.

라이브 예제

1. HTML 링크

추가 rel="noopener noreferrer" 를 <a> 태그.

그리고 rel 속성은 연결된 리소스와 현재 문서 간의 관계를 정의합니다.

noopener 은 브라우저에 대상을 연 부모에 대한 액세스 권한을 부여하지 않고 대상을 탐색하도록 지시합니다. 대상 탭 창 열기 는 null.

노레퍼러 는 브라우저가 타깃으로 이동할 때 주소나 다른 값을 참조자로 부모에게 보내는 것을 방지합니다. 참조 HTTP 헤더. 이 HTTP 헤더 이름은 의도적으로 "referrer"로 철자가 잘못 표기되어 있습니다.

2. JavaScript 링크

JavaScript의 경우 창 열기 함수에 값을 추가할 수 있습니다. noopener 그리고 노레퍼러 에서 창 기능 매개변수의 창 열기 기능을 사용할 수 있지만 브라우저에 따라 다르게 반응할 수 있으므로 창 열기 as null 사용 후 창 열기() 함수입니다.

자세히 보기:

Rails API 및 CORS. 의식의 전환

NextJS의 데이터 가져오기 전략

온라인 스토어에 마젠토가 필요한 7가지 이유

이 글이 흥미로웠다면 Github에서 Lukasz를 팔로우하세요: https://github.com/twistezo

관련 문서

소프트웨어 개발

미래 지향적인 웹 앱 구축: The Codest의 전문가 팀이 제공하는 인사이트

The Codest가 최첨단 기술로 확장 가능한 대화형 웹 애플리케이션을 제작하고 모든 플랫폼에서 원활한 사용자 경험을 제공하는 데 탁월한 성능을 발휘하는 방법을 알아보세요. Adobe의 전문성이 어떻게 디지털 혁신과 비즈니스를 촉진하는지 알아보세요...

최신
소프트웨어 개발

라트비아에 본사를 둔 10대 소프트웨어 개발 기업

최신 기사에서 라트비아 최고의 소프트웨어 개발 기업과 그들의 혁신적인 솔루션에 대해 알아보세요. 이러한 기술 리더들이 어떻게 귀사의 비즈니스를 향상시키는 데 도움을 줄 수 있는지 알아보세요.

thecodest
엔터프라이즈 및 스케일업 솔루션

Java 소프트웨어 개발 필수 사항: 성공적인 아웃소싱을 위한 가이드

The Codest로 효율성을 높이고 전문 지식을 활용하며 프로젝트 성공을 이끌 수 있는 성공적인 outsourcing Java 소프트웨어 개발에 대한 이 필수 가이드를 살펴보세요.

thecodest
소프트웨어 개발

폴란드 아웃소싱을 위한 최고의 가이드

폴란드에서 outsourcing가 급증한 것은 경제, 교육, 기술 발전으로 인한 IT 성장과 비즈니스 친화적인 환경이 조성된 덕분입니다.

더코데스트
엔터프라이즈 및 스케일업 솔루션

IT 감사 도구 및 기술에 대한 완벽한 가이드

IT 감사는 안전하고 효율적이며 규정을 준수하는 시스템을 보장합니다. 전체 기사를 읽고 그 중요성에 대해 자세히 알아보세요.

The Codest
야쿱 야쿠보비치 CTO & 공동 설립자

지식창고를 구독하고 IT 분야의 전문 지식을 최신 상태로 유지하세요.

    회사 소개

    The Codest - 폴란드에 기술 허브를 둔 국제 소프트웨어 개발 회사입니다.

    영국 - 본사

    • 사무실 303B, 182-184 하이 스트리트 노스 E6 2JA
      영국 런던

    폴란드 - 현지 기술 허브

    • 파브리츠나 오피스 파크, 알레야
      포코주 18, 31-564 크라쿠프
    • 뇌 대사관, 콘스트럭터스카
      11, 02-673 바르샤바, 폴란드

      The Codest

    • 홈
    • 회사 소개
    • 서비스
    • Case Studies
    • 방법 알아보기
    • 채용 정보
    • 사전

      서비스

    • IT 자문
    • 소프트웨어 개발
    • 백엔드 개발
    • 프론트엔드 개발
    • Staff Augmentation
    • 백엔드 개발자
    • 클라우드 엔지니어
    • 데이터 엔지니어
    • 기타
    • QA 엔지니어

      리소스

    • 외부 소프트웨어 개발 파트너와의 협력에 대한 사실과 오해
    • 미국에서 유럽으로: 미국 스타트업이 유럽으로 이전을 결정하는 이유
    • 테크 오프쇼어 개발 허브 비교: 테크 오프쇼어 유럽(폴란드), 아세안(필리핀), 유라시아(터키)
    • CTO와 CIO의 주요 과제는 무엇인가요?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • 웹사이트 이용 약관

    저작권 © 2025 by The Codest. 모든 권리 보유.

    ko_KRKorean
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese es_ESSpanish nl_NLDutch etEstonian elGreek ko_KRKorean