· 톺아보기

크롬이 아예 광고차단 막는다는 얘기는 아닙니다

음성사서함 · · 수정

조회 2,460 · 공감 0 · 댓글 1

구글이 크롬에서 아예 광고차단 안되게 막아버린다!는 식으로 글들이 돌고 있던데, 엄밀히 말하자면 아예 광고차단을 막는다는 뜻은 아닙니다.
 
현재 광고 차단 플러그인들은 크롬의 webRequest 플러그인 API를 사용하여 구현되어 있습니다. 간단하게 설명하자면 이걸로 유저의 통신 내역을 읽고, 광고 URL이 보이면 차단하는 방식이죠.
 
아주 단순하지만 확실한 구현 방식인데, 문제는 이렇게 권한을 열어주면 플러그인에서 유저의 모든 통신 내용을 읽을 수 있다는 문제가 발생합니다. 악용이 가능하다는 거죠.
 
이 문제를 풀기 위해 크롬 개발팀은 webRequest API를 deprecate 시켜버리고, 새로운 declarativeNetRequest API를 만들기로 합니다.
 
구현 방식은 단순합니다. 플러그인은 모든 유저의 통신을 열어보는 대신, 차단할 URL 목록만 크롬에게 넘겨줍니다. 그러면 크롬이 통신 과정에서 차단 대상 URL을 차단해주는 방식이죠. 어차피 크롬은 모든 통신을 읽어야만 하니 상관 없고, (안그러면 브라우저 기능 자체가 불가능하니...) 플러그인의 개인정보 접근은 최소화하며 광고 차단 기능은 그대로 구현 가능하니 어찌보면 가장 합리적인 해결방법입니다.
 
그럼 문제가 뭐냐... 일단 차단할 URL 필터는 AdBlock Plus 호환 문법만 사용 가능합니다. 즉, 복잡한 형태의 광고는 차단이 어려워진다는 의미죠.
 
그리고 가장 중요하며 논란이 되는 부분은, 한 플러그인은 30,000개의 차단 목록만 등록이 가능하단 겁니다. 아마 성능 문제로 제한을 뒀을거라 생각합니다.
 
3만개면 충분하지 않냐 하실 수도 있지만, 흔히들 쓰는 광고 차단 목록이 7-10만개 정도입니다. 부족하다는거죠.
 
 
 
여기까지 설명을 읽으신 분들 중 뭔가 익숙함을 느낀 분들도 계실 것 같은데, 사실 이 같은 차단 방식은 애플이 Safari에 도입한 Content Blocker API와 거의 동일합니다. 애플은 좀 널널하게 50,000개의 차단 목록을 등록 가능합니다.
 
사실 많이들 쓰시는 유니콘 같은 iOS용 광고 차단도 비슷한 방식이라, 광고 차단 자체는 큰 문제 없이 작동할 가능성이 높습니다. 많이 쓰는 필터 목록이 7-10만개지만, 이중 90% 정도가 실제로 쓰이지 않고 있다는 연구 결과도 있고요 (https://arxiv.org/pdf/1810.09160.pdf) 정 필요하다면 한 플러그인당 3만개 제한이니 필터마다 플러그인을 쪼개는 식의 구현도 가능하고요.
 
문제는 아예 webRequest API를 없애버리면 단순 광고 차단 플러그인만이 아닌 다른 플러그인들도 작동에 문제가 발생할 소지가 매우 높다는 거죠. 유명한 프라이버시 플러그인인 Privacy Badger를 예로 들자면 webRequest API를 통해 통신 내역을 읽어 트래커를 추적해 차단하는 방식이기 때문에, 새 API로는 구현이 불가능합니다.
 
더 자세한 내용이 궁금하신 분들은 https://developer.chrome.com/extensions/declarativeNetRequest 에서 API 문서를 읽어보세요.

댓글 1

  1. Myayu ·
    declarativeNetRequest 3만개 제한이 좀 빡빡하긴 합니다.
    manifest 3 정식으로 도입하기 전에 좀 늘렸으면 좋겠어요.
    그나저나 옛날부터 써온 익스텐션 중 업데이트 끊긴 것들 가끔 있던데, 곧 다가올 대격변 때 떨어져 나갈 듯한(...) ㅠㅠ

모두의공원 최근 글

모두의공원 목록 더 보기