Facebook의 은밀한 방어: 개발자 도구 무력화
브라우저에 내장된 개발자 도구를 비활성화하는 것이 기술적으로 불가능하다는 믿음에도 불구하고 Facebook은 이 개념에 도전했습니다. 만연한 사기와 악의적인 계정 해킹에 맞서기 위해 Facebook은 대담한 솔루션을 도입했습니다.
Facebook이 불가능을 달성한 방법
Facebook의 접근 방식에는 래핑된 코드 조각을 통해 모든 콘솔 명령을 가로채는 것이 포함됩니다. 특수한 Chrome 기능 내에서. Facebook은 이 기능을 수정하여 모든 콘솔 입력을 null 및 무효로 효과적으로 렌더링합니다.
기술 세부정보
Chrome은 콘솔 명령을 다음 구조로 캡슐화합니다.
with ((console && console._commandLineAPI) || {}) { <code goes here> }
Facebook은 예외를 트리거하기 위해 console._commandLineAPI 속성을 독창적으로 재정의했습니다.
Object.defineProperty(console, '_commandLineAPI', { get : function() { throw 'Nooo!' } })
이것만으로도 콘솔을 완전히 차단하지는 않지만 방어 메커니즘의 핵심을 형성합니다.
보안 대 기능
클라이언트 측 해킹 조치가 문제가 될 수 있지만 Facebook의 전략은 특히 사용자가 콘솔에서 악성 JavaScript 코드를 무의식적으로 실행하는 소셜 엔지니어링 공격을 표적으로 삼습니다.
에필로그
페이스북의 혁신적인 접근 방식에도 불구하고 크롬팀은 이를 버그로 분류하고 기능을 반대로 했습니다. 그러나 Facebook은 self-xss 취약점으로부터 사용자를 보호하기 위해 추가 보호 장치를 구현했습니다.
위 내용은 Chrome의 한계에도 불구하고 Facebook은 어떻게 개발자 콘솔을 침묵시켰나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!