Clickjacking은 웹 페이지를 투명한 iframes에 포함시켜 공격자가 제어하는 웹 페이지의 특정 콘텐츠를 무의식적으로 클릭하는 악성 기술입니다. 이 공격을 방지하기 위해 HTTP 헤더 정보를 통해 페이지가 iframe에 중첩되는 것을 방지 할 수 있습니다.
PHP에서는 헤더 () 함수를 사용하여 방어를 달성하기 위해 적절한 HTTP 응답 헤더를 설정할 수 있습니다.
클릭 잭킹 공격의 원칙은 사용자가 볼 수없는 인터페이스 요소를 클릭하도록하여 사용자가 자신의 지식없이 작업을 수행 할 수 있도록하는 것입니다. 일반적으로 공격자는 iframe을 사용하여 자신의 웹 페이지에서 대상 웹 사이트의 페이지를 중첩하고 투명성 또는 기타 수단을 통해 페이지 컨텐츠를 커버하여 사용자가 실제로 무해한 콘텐츠를 작동 할 때 원하는 작업을 수행 할 수 있도록합니다.
페이지가 iframes에 중첩되는 것을 방지하는 가장 좋은 방법은 X-Frame-Options 응답 헤더를 사용하는 것입니다. 이 헤더는 브라우저에 현재 페이지가 iframe에 중첩 될 수 있는지 여부를 알려줍니다. 이 방법을 사용하면 클릭 재킹 공격을 효과적으로 방지 할 수 있습니다.
PHP에서는 헤더 () 함수를 통해 HTTP 응답 헤더를 보낼 수 있습니다. 페이지가 iframe에 중첩되는 것을 방지하려면 다음 코드를 사용할 수 있습니다.
<?php
// 설정 X-Frame-Options 페이지가 중첩되지 않도록합니다 iframe 가운데
header('X-Frame-Options: DENY');
// 또는 지정된 도메인 이름으로 중첩 된 페이지 만 허용하려는 경우,사용 가능:
header('X-Frame-Options: ALLOW-FROM https://m66.net');
// 페이지에서 다른 콘텐츠를 계속 처리하십시오
?>
거부 : 모든 웹 페이지는 iframe을 통해 현재 페이지를로드 할 수 없습니다.
Sameorigin : 동일한 소스 (즉, 동일한 도메인 이름)를 가진 페이지 만 iframe을 통해 현재 페이지를로드 할 수 있습니다.
허용 URI : 지정된 도메인 이름이 iframe을 통해 현재 페이지를로드하도록 허용합니다. Firefox와 같은 일부 브라우저에서는 허용 옵션이 더 이상 사용되지 않으므로 일반적으로 거부 또는 Sameorigin이 권장됩니다.
다음은 PHP 페이지에서 X- 프레임 옵션 헤더를 설정하는 방법을 보여주는 실용적인 예입니다.
<?php
// 예방하다 Clickjacking 공격
header('X-Frame-Options: DENY');
// 설정其他 HTTP 응답 헤드
header('Content-Type: text/html; charset=UTF-8');
// 페이지 내용
echo "<h1>이것은 안전한 페이지입니다</h1>";
echo "<p>이 페이지는 중첩 될 수 없습니다 iframe 가운데。</p>";
?>
X- 프레임 옵션은 클릭 재킹 공격을 방지하는 효과적인 방법이지만 유일한 방어는 아닙니다. CSP (Content Security Policy)를 사용하여 보호를 더욱 강화할 수도 있습니다. 예를 들어, CSP 헤더를 설정하여 페이지가 iframe에 중첩되는 것을 명시 적으로 금지합니다.
<?php
// 사용 CSP 둥지를 금지합니다
header("Content-Security-Policy: frame-ancestors 'none';");
// 페이지 내용
echo "<h1>이것은 안전한 페이지입니다</h1>";
?>
프레임 인사를 '없음' 으로 설정하면 X- 프레임 옵션 보다 유연한 IFRAME에 중첩 된 페이지를 완전히 비활성화 할 수 있습니다.
이렇게하면 페이지가 Iframe에 중첩되는 것을 효과적으로 방지 할 수 있으며 클릭 재신 공격을 피할 수 있습니다. 귀하의 요구에 따라 X- 프레임 옵션 또는 CSP (Content Security Policy)를 사용하여 방어를 달성하도록 선택할 수 있습니다.