Secure Site

This site is protected from clickjacking attacks.

이 예에서 JavaScript는 현재 창(window.self)이 최상위 창(window.top)이 아닌지 확인합니다. 그렇지 않은 경우 맨 위 창을 현재 창의 URL로 리디렉션하여 효과적으로 iframe을 중단합니다.

2. 이벤트 리스너를 통한 향상된 프레임 버스팅
이벤트 리스너를 사용하여 페이지에 프레임이 있는지 지속적으로 확인하면 프레임 버스팅 기술을 더욱 향상시킬 수 있습니다.

예:

            Enhanced Frame Busting        

Secure Site

This site is protected from clickjacking attacks.

이 예에서는 지속적인 보호를 보장하기 위해 DOMContentLoaded, 로드 및 크기 조정 이벤트에서 PreventClickjacking 함수가 호출됩니다.

서버측 보호

JavaScript 방법이 유용하지만 서버 측 보호를 구현하면 추가 보안 계층이 제공됩니다. 클릭재킹을 방지하기 위해 Apache 및 Nginx에서 HTTP 헤더를 설정하는 방법은 다음과 같습니다.

1. X-프레임 옵션 헤더
X-Frame-Options 헤더를 사용하면 사이트를 iframe에 삽입할 수 있는지 여부를 지정할 수 있습니다. 세 가지 옵션이 있습니다:

거부: 모든 도메인이 페이지를 삽입하는 것을 방지합니다.
SAMEORIGIN: 동일한 출처에서만 임베딩을 허용합니다.
ALLOW-FROM uri: 지정된 URI에서 삽입을 허용합니다.
예:

X-Frame-Options: DENY

아파치 구성
서버 구성에 다음 헤더를 추가하세요:

# ApacheHeader always set X-Frame-Options \\\"DENY\\\"

Nginx 구성
서버 구성에 다음 헤더를 추가하세요:

2. CSP(콘텐츠 보안 정책) 프레임 상위 항목
CSP는 iframe을 사용하여 페이지를 포함할 수 있는 유효한 상위 항목을 지정하는 프레임 조상 지시문을 통해 보다 유연한 접근 방식을 제공합니다.

예:

Content-Security-Policy: frame-ancestors \\'self\\'

아파치 구성
서버 구성에 다음 헤더를 추가하세요:

예:

# ApacheHeader always set Content-Security-Policy \\\"frame-ancestors \\'self\\'\\\"

Nginx 구성
서버 구성에 다음 헤더를 추가하세요:

# Nginxadd_header Content-Security-Policy \\\"frame-ancestors \\'self\\'\\\";

결론

클릭재킹은 웹 보안에 심각한 위협이지만 JavaScript 프레임 버스팅 기술과 X-Frame-Options 및 Content-Security-Policy 헤더와 같은 서버 측 보호를 구현하면 웹 애플리케이션을 효과적으로 보호할 수 있습니다. 제공된 예를 사용하여 사이트 보안을 강화하고 사용자에게 보다 안전한 환경을 제공하세요.

","image":"http://www.luping.net/uploads/20240801/172248708366ab112bdc1ec.jpg","datePublished":"2024-08-01T12:38:03+08:00","dateModified":"2024-08-01T12:38:03+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > JavaScript에서 클릭재킹 공격 방지

JavaScript에서 클릭재킹 공격 방지

2024-08-01에 게시됨
검색:712

Preventing Clickjacking Attacks in JavaScript

UI 교정이라고도 알려진 클릭재킹은 악의적인 행위자가 iframe 내에 웹페이지를 삽입하여 사용자가 인식한 것과 다른 것을 클릭하도록 속이는 공격 유형입니다. 이로 인해 무단 작업이 발생하고 사용자 보안이 손상될 수 있습니다. 이 블로그에서는 사용자 친화적인 예시와 함께 JavaScript와 Apache 및 Nginx용 서버 구성을 사용하여 클릭재킹 공격을 방지하는 방법을 살펴보겠습니다.

클릭재킹 이해

클릭재킹은 합법적인 웹페이지 요소 위에 투명하거나 불투명한 iframe을 배치하여 사용자가 자신도 모르게 설정 변경, 자금 이체 등의 작업을 수행하도록 하는 것과 관련됩니다.

실제 사례

공격자가 은행 사이트의 숨겨진 iframe을 신뢰할 수 있는 웹페이지에 삽입하는 시나리오를 생각해 보세요. 사용자가 겉으로는 무해해 보이는 버튼을 클릭하면 실제로는 은행 거래를 승인하는 것일 수도 있습니다.

다음은 취약한 페이지의 예입니다.



    Clickjacking Example

Welcome to Our Site

JavaScript로 클릭재킹 방지

클릭재킹 공격을 방지하려면 JavaScript를 사용하여 웹사이트가 프레이밍되지 않도록 할 수 있습니다. 이 보호를 구현하는 방법에 대한 단계별 가이드는 다음과 같습니다.

1. JavaScript 프레임 버스팅
프레임 버스팅에는 JavaScript를 사용하여 웹 사이트가 iframe 내에 로드되어 iframe에서 빠져 나오는지 감지하는 작업이 포함됩니다.

예:



    Frame Busting Example

Secure Site

This site is protected from clickjacking attacks.

이 예에서 JavaScript는 현재 창(window.self)이 최상위 창(window.top)이 아닌지 확인합니다. 그렇지 않은 경우 맨 위 창을 현재 창의 URL로 리디렉션하여 효과적으로 iframe을 중단합니다.

2. 이벤트 리스너를 통한 향상된 프레임 버스팅
이벤트 리스너를 사용하여 페이지에 프레임이 있는지 지속적으로 확인하면 프레임 버스팅 기술을 더욱 향상시킬 수 있습니다.

예:



    Enhanced Frame Busting

Secure Site

This site is protected from clickjacking attacks.

이 예에서는 지속적인 보호를 보장하기 위해 DOMContentLoaded, 로드 및 크기 조정 이벤트에서 PreventClickjacking 함수가 호출됩니다.

서버측 보호

JavaScript 방법이 유용하지만 서버 측 보호를 구현하면 추가 보안 계층이 제공됩니다. 클릭재킹을 방지하기 위해 Apache 및 Nginx에서 HTTP 헤더를 설정하는 방법은 다음과 같습니다.

1. X-프레임 옵션 헤더
X-Frame-Options 헤더를 사용하면 사이트를 iframe에 삽입할 수 있는지 여부를 지정할 수 있습니다. 세 가지 옵션이 있습니다:

거부: 모든 도메인이 페이지를 삽입하는 것을 방지합니다.
SAMEORIGIN: 동일한 출처에서만 임베딩을 허용합니다.
ALLOW-FROM uri: 지정된 URI에서 삽입을 허용합니다.
예:

X-Frame-Options: DENY

아파치 구성
서버 구성에 다음 헤더를 추가하세요:

# Apache
Header always set X-Frame-Options "DENY"

Nginx 구성
서버 구성에 다음 헤더를 추가하세요:

2. CSP(콘텐츠 보안 정책) 프레임 상위 항목
CSP는 iframe을 사용하여 페이지를 포함할 수 있는 유효한 상위 항목을 지정하는 프레임 조상 지시문을 통해 보다 유연한 접근 방식을 제공합니다.

예:

Content-Security-Policy: frame-ancestors 'self'

아파치 구성
서버 구성에 다음 헤더를 추가하세요:

예:

# Apache
Header always set Content-Security-Policy "frame-ancestors 'self'"

Nginx 구성
서버 구성에 다음 헤더를 추가하세요:

# Nginx
add_header Content-Security-Policy "frame-ancestors 'self'";

결론

클릭재킹은 웹 보안에 심각한 위협이지만 JavaScript 프레임 버스팅 기술과 X-Frame-Options 및 Content-Security-Policy 헤더와 같은 서버 측 보호를 구현하면 웹 애플리케이션을 효과적으로 보호할 수 있습니다. 제공된 예를 사용하여 사이트 보안을 강화하고 사용자에게 보다 안전한 환경을 제공하세요.

릴리스 선언문 이 글은 https://dev.to/rigalpatel001/preventing-clickjacking-attacks-in-javascript-39pj?1에서 복제됩니다.1 침해 내용이 있는 경우, [email protected]에 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3