>  기사  >  웹 프론트엔드  >  IE의 보안 버그 정보 - 사용자 시스템 마우스 위치_javascript 기술을 추적하는 데 사용할 수 있습니다.

IE의 보안 버그 정보 - 사용자 시스템 마우스 위치_javascript 기술을 추적하는 데 사용할 수 있습니다.

WBOY
WBOY원래의
2016-05-16 17:36:50708검색

IE의 DHTML에는 이미 잘 알려진 다양한 MS$ 비공개 기능이 있습니다. 더 흥미로운 것 중 하나는 시스템 수준 마우스 위치 좌표를 얻을 수 있는 event.screenX 및 event.screenY입니다.

처음 들었을 땐 사실 별거 아닌 줄 알았어요. 화면의 좌표는 브라우저 클라이언트 영역의 좌표, 브라우저 창 좌표, 클라이언트 영역 오프셋 그 이상입니다.

IE 자체적으로는 이벤트와 화면 객체를 통해 다양한 화면 및 창 위치 관련 정보를 얻을 수 있습니다.

그러나 정말 이상한 일은 아직 시작되지 않았습니다! 표준 DOM 모델 정의에 따르면 은 이벤트가 트리거될 때만 이벤트에서 이벤트와 관련된 매개변수를 얻을 수 있습니다.

즉, mousemove가 발생하고 이러한 mouseXXX 마우스 이벤트가 발생해야만 마우스 관련 파라미터를 얻을 수 있습니다. 하지만 사악한 ​​IE에서는 페이지가 최소화된 경우에도 이벤트가 발생한 후에 event.screenX 및 event.screenY를 얻을 수 있습니다!

물론 여전히 이벤트에 의존해야 한다고 말할 수도 있습니다. 단, 여기서 이벤트는 onxxx 등 어떤 콜백 함수라도 될 수 있으며 UI 이벤트에만 국한되지 않습니다. 그러니까 인공적으로 만들어도 되는 거죠!

가장 간단한 예는 새 이미지에 잘못된 src를 설정하는 것입니다. 그러면 onerror 이벤트가 즉시 트리거됩니다!

따라서 onerror에서 event.screenX를 가져온 다음 잘못된 src를 계속 설정하여 사용자의 화면 수준 마우스 포인터를 실시간으로 추적할 수 있습니다. onerror의 생성은 UI 메시지에만 국한되지 않으므로 페이지가 최소화되거나 비활성화되어도 이벤트가 계속 트리거될 수 있습니다!

마우스나 키보드의 어떤 키를 눌렀는지 알아내는 것이 가능한지 여부는 안타깝게도 실제로는 불가능합니다. 전역 키 입력을 캡처하면 비밀번호 입력을 모니터링할 수 있지 않을까요? . .

실제로 onerror 등 UI가 아닌 이벤트가 발생하면 마우스나 키보드 매개변수가 브라우저 형태로 전혀 전달되지 않아 다양한 마우스와 키보드 정보를 얻을 수 없습니다. event.screenX에 대해서는 Win API GetCursorPos가 내부적으로 직접 호출되며 이 속성을 제공하는 이벤트의 트리거가 아니라는 설명만 있습니다.

페이지에 이러한 추적 코드가 포함되어 있고 그 좌표가 Socket.io를 통해 실시간으로 다시 전송된다면 흥미롭지 않을까요? . .

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