웹 브라우저들은 아래의 방법들에 의해 뚫릴 수 있다.
* 운영 체제가 뚫려서 악성코드가 관리자 모드에서 브라우저 메모리 영역을 읽거나 수정할 수 있을 때 
* 운영체제가 백그라운드에서 돌아가는 악성코드를 갖고 있는 경우 관리자 모드에서 브라우저 메모리 영역은 읽거나 수정될 수 있다.
* 주요 브라우저 실행파일이 해킹될 수 있다.
* 브라우저 구성 요소들이 해킹될 수 있다.
* 브라우저 플러그인들이 해킹될 수 있다.
* 머신 외부에서 브라우저 네트워크 통신이 가로채질 수 있다. 
브라우저는 위와 같이 뚫린 사실을 인식하지 못하고 안전한 연결이 만들어졌다고 사용자에게 보여줄 수 있다.

브라우저가 웹사이트와 통신할 때마다, 웹사이트는 브라우저의 몇몇 정보를 모은다. 만약 악의적인 코드가 웹사이트의 내용에 삽입되었다거나 최악의 경우 웹사이트가 의도적으로 악의적인 코드의 호스트로서 설계되었다면 취약점들은 이 악의적인 코드를 의도하지 않은 방법으로 브라우저 내에서 실행되게 할 수 있다. 공격자가 방문자의 머신에서 프로세스를 실행할 수 있다면, 알려진 보안 취약점을 공격함으로써 공격자는 감염된 시스템에 대해 특권적 접근(만약 브라우저가 이미 특권적 접근으로 실행중이지 않다면)을 얻을 수 있다. 

웹 브라우저 보안을 위반하는 것은 보통 웹 버그나 클릭재킹, 라이크재킹, HTTP 쿠키, 좀비 쿠키 또는 플래시 쿠키 같은 툴들을 사용해서 디지털 마케팅이나 신원 도용 등을 위해 개인정보를 모으는 팝업창 을 표시하기 위한 목적이다. 이 외에도 애드웨어, 바이러스, 트로이 목마 같은 스파이웨어 또는 MITB(man-in-the-browser) 공격을 사용하는 온라인 뱅킹 절도를 포함하는 악성 소프트웨어의 설치도 있다.

웹 브라우저의 취약점들은 브라우저 소프트웨어 업데이트를 유지함으로써 자체적으로 최소화될 수 있지만, 하부의 운영 체제가 루트킷에 감염된 경우에는 충분하지 않을 것이다. 몇몇 스크립팅, 애드온 그리고 쿠키 같은 브라우저의 하부구성요소들은 특히 취약하다.

종심방어의 원리에 따르면, 완전히 패치되고 정확하게 설정된 브라우저도 브라우저 관련 보안 문제가 발생하지 않을 것이라고 확신하기에는 충분치 않다. 예를 들면 루트킷은 은행 사이트에 로그인 할 경우 키로깅을 하거나 네트워크 트래픽을 수정해서 중간자 공격을 수행할 수 있다. DNS 하이재킹 또는 DNS 스푸핑은 잘못 타이핑한 웹사이트 이름에 대해 긍정오류를 반환하는데 사용되거나 유명한 검색 엔진의 검색 결과를 바꾸기 위해 사용될 수 있다. RSPlug 같은 악성코드는 DNS 서버를 가리키는 시스템의 설정을 간단하게 수정한다.

브라우저들은 몇몇 공격들을 방어하는데 도움을 주기 위해 통신 프로토콜의 더 안전한 방식들을 사용할 수 있다.
* DNS: DNSSec과 DNSCrypt
* HTTP: HTTPS와 SPDY
일반적으로 악의적인 웹사이트를 막고 다운로드한 파일의 안티바이러스 스캔을 수행하는 방화벽들과 프록시 서버 필터링을 통한 둘레 방어들은 큰 조직에서 악의적인 네트워크 트래픽을 막기 위한 구현으로서 주로 사용된다.

브라우저 보안의 주제는 "브라우저 익스플로잇 프레임워크 프로젝트" 같은 전체 조직들의 생성을 유발할 정도로 증가하고 있다.
웹 브라우저의 취약점을 최소한으로 보완할 수 있는 방법은?
브라우저 소프트웨어 업데이트를 유지함