>웹 프론트엔드 >JS 튜토리얼 >'setInterval' 및 'onbeforeunload'를 사용하는 프레임 버스팅 버스터를 어떻게 물리칠 수 있습니까?

'setInterval' 및 'onbeforeunload'를 사용하는 프레임 버스팅 버스터를 어떻게 물리칠 수 있습니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-09 03:44:09543검색

How Can We Defeat a Frame-Busting Buster That Uses `setInterval` and `onbeforeunload`?

프레임 버스터 버스터: 깨지지 않는 것을 거부

사이트가 표시되지 않도록 강력한 프레임 버스팅 스크립트를 구현했습니다. 아이프레임. 그런데 프레임 버스팅 코드 자체가 표적이 되면 어떻게 될까요?

The Frame Busting Buster.

영리한 공격자가 프레임을 우회할 수 있는 스크립트를 개발했습니다. window.onbeforeunload 이벤트와 밀리초마다 실행되도록 설정된 타이머를 활용하여 버스팅 조치를 취합니다. 공격자의 스크립트:

  • window.onbeforeunload 이벤트 핸들러에서 카운터를 증가시켜 브라우저가 현재 페이지에서 벗어나는 것을 방지합니다.
  • 위치를 제어하는 ​​서버로 리디렉션합니다.
  • 공격자의 서버는 204 상태 코드로 응답하고, 브라우저가 어디든 탐색하지 못하도록 방지합니다.

이 프레임 버스터를 물리치려는 초기 시도는 실패했습니다. onbeforeunload 이벤트를 클리어해도 아무런 효과가 없으며 경고 상자는 일시적인 중단만 제공합니다.

버스터 버스터.

이 악순환을 깨고 끈질긴 프레임을 물리칠 수 있습니까? -버스터 버스터? 공격자의 스크립트를 무력화하는 한 가지 접근 방식은 setInterval() 타이머를 대상으로 하는 것입니다:

// Detect the attacker's script
var busterBuster = setInterval(function() {
  if (prevent_bust > 0) {
    // Bust the buster
    clearInterval(busterBuster);
    prevent_bust = 0;
  }
}, 1);

이 스크립트:

  • 공격자의 타이머가 있는지 정기적으로 확인합니다.
  • 타이머가 감지되면 타이머를 지우고 Prevent_bust를 다음으로 재설정합니다. 0.
  • 이 작업은 효과적으로 주기를 중단하고 공격자의 스크립트가 계속 실행되는 것을 방지합니다.

결론.

프레임이 진행되는 동안 -버스터 버스터는 엄청난 도전이었습니다. 버스터-버스터-버스터는 JavaScript 프로그래머의 탄력성과 적응성을 보여줍니다. 공격자의 코드를 주의 깊게 분석하고 JavaScript 기능에 대한 지식을 활용함으로써 가장 복잡한 위협도 극복할 수 있습니다.

위 내용은 'setInterval' 및 'onbeforeunload'를 사용하는 프레임 버스팅 버스터를 어떻게 물리칠 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.