브라우저 도우미 객체(英: Browser Helper Object, 약어 BHO)는 마이크로소프트 인터넷 익스플로러(Internet Explorer)에서 사용되는 COM(Component Object Model) 기반의 확장 모듈이다. BHO는 인터넷 익스플로러가 웹 페이지를 로드하거나 탐색할 때마다 자동으로 로드되어, 브라우저와 상호 작용하거나 페이지 내용을 분석·조작하는 기능을 수행한다.
주요 특징
| 구분 | 내용 |
|---|---|
| 구현 방식 | COM 객체로 구현되며, 레지스트리 키 HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects(또는 64비트 시스템에서는 HKLM\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects)에 GUID를 등록함으로써 인터넷 익스플로러에 로드된다. |
| 동작 시점 | 브라우저가 시작될 때와 각 탭이 로드될 때마다 인스턴스가 생성되어 IObjectWithSite::SetSite 메서드를 통해 브라우저 객체에 접근한다. |
| 활용 예 | - 광고 차단, 콘텐츠 필터링 - 사용자 행동 분석 및 통계 수집 - 검색 엔진 연동, 툴바 제공 - 보안 소프트웨어의 웹 트래픽 검사 |
| 보안·프라이버시 | BHO는 브라우저와 동일한 수준의 권한을 가지므로 악성 BHO는 사용자의 웹 활동을 감시하거나 페이지를 변조할 수 있다. 따라서 운영 체제와 브라우저는 신뢰할 수 없는 BHO의 설치 및 실행을 제한하거나 사용자에게 경고한다. |
| 지원·제한 | - 마이크로소프트는 인터넷 익스플로러 11까지 BHO를 공식적으로 지원한다. - 마이크로소프트 엣지(Edge)와 같은 최신 브라우저에서는 BHO와 동일한 구조가 제공되지 않으며, 대신 확장 프로그램(WebExtensions) 모델을 사용한다. |
역사·배경
- 도입 시기: BHO는 2000년대 초 인터넷 익스플로러 5.0부터 도입되었으며, 이후 버전에서도 유지·확장되었다.
- 표준화 여부: COM 기반이므로 마이크로소프트 자체 기술이며, 다른 브라우저에서는 표준화된 확장 방식이 아니다.
사용·개발 시 고려사항
- 레지스트리 관리: BHO를 설치·제거하려면 해당 GUID를 레지스트리에서 정확히 등록·삭제해야 하며, 잘못된 조작은 브라우저 동작에 오류를 일으킬 수 있다.
- 성능 영향: 모든 페이지 로드 시마다 실행되므로, 부적절한 코드가 포함될 경우 페이지 로드 속도가 저하될 수 있다.
- 보안 검토: 배포 전 디지털 서명을 적용하고, 신뢰할 수 있는 인증 기관에서 발급한 인증서를 사용하는 것이 권장된다.
현재 상황
인터넷 익스플로러는 2022년 6월 15일을 기점으로 마이크로소프트의 지원이 종료되었으며, 이에 따라 BHO의 실사용도 급격히 감소하였다. 최신 웹 브라우저(예: 마이크로소프트 엣지, 구글 크롬, 파이어폭스)는 WebExtensions API를 통해 확장 기능을 제공하고 있어, 기존 BHO를 대체하는 추세이다.
본 항목은 브라우저 도우미 객체가 널리 알려진 기술적 개념임을 근거로 작성하였다.