애드블록 플러스 | 2010.06.04 20:14

1. 차단 필터
1. 기본 필터
차단 필터는 URL 주소를 가진 웹 콘텐츠의 요청을 차단하는 필터로서 이미지, 플래시, 프레임 등의 여러 형식을 선별적으로 차단할 수 있습니다. 하지만 웹 콘텐츠의 주소는 변경될 수 있으므로 주소와 동일한 필터보다는와일드 카드 문자(*)를 적절히 사용해 더욱 일반적인 형태로 만들어줄 것을 권장합니다. 예를 들어 어떤 콘텐츠의 주소가 다음과 같다면 이것을 차단할 수 있는 몇 가지 차단 필터를 작성할 수 있습니다.

http://example.com/ads/banner123.gif


  • http://example.com/ads/banner123.gif : 주소와 완전히 일치하는 필터. 더욱 일반적인 형태를 권장함.
  • http://example.com/ads/banner*.gif : ads 디렉토리의 banner 또는 banner로 시작하는 gif 확장자 파일을 모두 차단함.
  • http://example.com/ads/ : ads 디렉토리의 모든 파일을 차단함.
  • http://example.com/ : 모든 광고 차단 가능. 그러나 example.com의 정상적인 콘텐츠도 차단될 수 있음.

2. 필터 일치 정의
1. 주소 시작/끝 부분에 일치
Adblock Plus는 모든 필터를 마치 시작과 끝에 와일드 카드 문자(*)를 가진 것처럼 처리합니다. 예를 들어 필터 ad와 *ad*는 다르지 않습니다.

ad = *ad*


또한 필터에 파이프 기호를 추가해서 정의한 필터가 주소의 시작 또는 끝에 일치하게 합니다. 이것은 필터가 주소의 시작/끝 부부임을 명확히 나타내기 위해서입니다.

필터를 주소 시작 부분에 일치시킴

 필터 |http://bad.example  설명
 차단됨 |http://bad.example/banner.gif  필터가 주소의 시작 부분에 일치함
 차단 안 됨
  http://good.example/test?http://bad.example  필터가 주소의 시작 부분에 일치 안 함
 

필터를 주소 끝 부분에 일치시킴

 필터

swf

swf|

 설명  swf가 포함된 주소 차단  swf로 끝나는 주소 차단

 차단됨

 http://example.com/mainad.swf

 http://example.com/mainad.swf

 

 http://example.com/swf/index.html

 
 차단 안 됨  

 http://example.com/swf/index.html


2. 도메인 시작 부분에 일치
2개의 파이프 기호(||)를 도메인으로 시작하는 필터 앞에 붙이면 그 필터가 주소에서 도메인 이름의 시작 부분에 일치 여부를 확인하게 된다. 뿐만 아니라 프로토콜과 하위 도메인에 관계없이 정의한 필터와 일치하면 무조건 필터를 적용한다. 주로 애드서버(Adserver)나 광고만을 제공하는 사이트 차단에 사용된다.

 

               ||example.com

 설명
 차단됨

        http://example.com

 프로토콜에 관계없이 도메인 일치

 차단됨

        https://example.com

 프로토콜에 관계없이 도메인 일치

 차단됨

        mms://example.com

 프로토콜에 관계없이 도메인 일치

 차단됨

 http://www.example.com

 하위 도메인에 관계없이 기본 도메인 일치

 차단됨

 http://a.b.c.example.com

 하위 도메인에 관계없이 기본 도메인 일치

 차단 안 됨

 http://example.net/ads?http://example.com

 도메인의 시작 부분에 불일치

 
3. 주소 구분자
필터를 주소에 명확히 적용하고, 웹 페이지 오작동을 줄이기 위해 구분 문자를 사용합니다. "/", "?", ":", "&", "=" 등 주소를 의미있는 단위로 구분하는 기호이며, 이것들을 주소 구분자인 ^ 기호로 대체하면 차단됩니다. 하지만 그외의 기호인 ".", "-", "%" 등은 ^ 기호로 대체되지 않으므로 주소를 차단하지 않습니다. 그리고 주소의 끝 부분 역시 구분자로 취급합니다.

http://example.com:8000/abc.php?AutoPlay=true&a=12&b=%EC%98%88%EC%8B%9C
        ^example.com^      ^abc.php^                                 ^%EC%98%88%EC%8B%9C^


  • ^example.com^
  • ^abc.php^
  • ^%EC%98%88%EC%8B%9C^

 차단 필터

 http://example.com^

 차단됨

 http://example.com/

 차단됨

 http://example.com:8000/

 차단 안 됨

 http://example.com.ar/


http://example.com^에서 주소 구분자(^)는 디렉토리를 구분하는 슬래시(/) 기호나 포트 번호를 구분하는 콜론(:) 기호일 경우 주소 구분자의 조건을 만족하므로 주소를 차단합니다. 마침표(.)는 특별히 지정된 구분 기호가 아니므로 주소를 차단하지 않습니다. 아래의 표는 ^foo.bar^에 대한 주소 차단에 대한 또 다른 사례를 설명하고 있습니다.

   ^foo.bar^ 설명
 차단됨  http://example.com/foo.bar  슬래시(/)와 주소 마지막 생략 부분 일치
 차단됨  http://example.com/foo.bar?q=3  슬래시(/)와 물음표(?) 일치
 차단됨  http://foo.bar/  2개의 슬래시(/) 일치
 차단 안 됨  http://www.foo.bar/  슬래시(/)는 일치하지만 마침표(.) 불일치
 차단 안 됨  http://foo.bar.com/

 슬래시(/)는 일치하지만 마침표(.) 불일치

 차단 안 됨  http://example.com/new_foo.bar

 마지막 생략 부분 일치하지만 마침표(.) 불일치

 차단 안 됨  http://example.com/foo.bar2  슬래시(/)는 일치하지만 숫자 2는 불일치

애드서버(adserver), 광고를 위한 사이트 등 특정 도메인을 차단해야 하는 경우 도메인 앞에 파이프 기호 두개(||)를 붙이고, 도메인 끝에 주소 구분자(^)를 붙이면 됩니다. 이 때 호스트 파일에 의한 차단 방식처럼 도메인에 대한 접근 자체를 완전히 차단하는 것이 아닙니다.

||example.com^


4. 고급 설정
필터의 동작을 변경하기 위해 많은 옵션을 선택할 수 있고, 형식은 필터 끝에 달러 기호($)를 붙이고 옵션을 덧붙입니다. 옵션이 여러 개일 때는 옵션을 쉼표(,)로 구분합니다. 예를 들어 */ads/* 필터가 있고, 스크립트와 대/소문자 구분한 옵션을 적용하면 다음과 같습니다.

*/ads/*$script,match-case


1. 적용 형식 : 필터가 차단할 수 있는(또는 허용 필터의 경우 허용 목록) 요소의 형식을 결정할 수 있다. 여러 적용 형식의 옵션은 필터가 여러 요소의 몇몇 형식에 적용을 지정하기 위해 특정될 수 있다. 현재 다음 옵션을 지원합니다.

  • 스크립트 : HTML 스크립트 태그를 통해 불러오는 외부 스크립트
  • 이미지 : HTML img 태그를 통해 불러오는 일반적인 이미지
  • 배경 : 종종 CSS에 의해 특정화된 배경 이미지
  • 스타일시트 : 외부 CSS 스타일시트 파일
  • 객체 : 플래시와 자바와 같은 브라우저 플러그인에 의해 다루어지는 콘텐츠
  • XBL : XBL 바인딩 (보통 -moz-binding CSS 속성에 의해 불러옴)
  • 핑 : 링크 핑
  • xml 요청 : XMLHttpRequest 객체에 의해 요청이 시작됨
  • 객체 하위 요청 : 플래시 같은 플러그인을 시작하게 하는 요청
  • dtd : XML 문서에 의해 불러오는 DTD 파일
  • 프레임 : HTML 프레임을 통해 보통 포함된 페이지(하위 문서)
  • 문서 : 문서 그 자체(오직 허용 필터에 의해 페이지에 적용됨)
  • 요소 숨김 - 허용 필터의 경우에만 문서와 유사하지만 그 페이지의 요소 숨김에만 필터를 적용하지 않음
  • 기타 : 위의 목록 이외의 요청 유형

정반대 적용 형식 옵션 : 필터가 적용되지 않을 요소 형식을 특정합니다.

~script, ~image, ~background, ~stylesheet, ~object, ~xbl, ~ping, ~xmlhttprequest, ~document, ~dtd,
~object-subrequest, ~subdocument, ~other


2. 외부/내부 요청에만 적용(~third-party, third-party) : 내부 요청(~third-party)은 현재 보고 있는 페이지와 같은 도메인에서 제공되는 콘텐츠를 차단하기 위해 필터 적용 범위를 한정합니다. 외부 요청(third-party)은 현재 보고 있는 페이지에서 다른 도메인에서 제공되는 콘텐츠를 차단하기 위해 필터 적용 범위를 한정합니다.

※ 외부/내부 요청
불러온 웹 페이지의 기본 도메인을 기준으로 할 때 같은 기본 도메인(서버)에서 기원한 모든 콘텐츠를 내부 요청(first-party)이라고 하고, 다른 기본 도메인(서버)에서 기원한 모든 콘텐츠를 외부 요청(third-party)이라고 합니다.

3. 대/소문자 구분
: 대/소문자와 일치하는 주소에만 필터를 적용한다.


 필터

 http://www.example.com/BannerAd.gif$match-case

 차단됨  http://www.example.com/BannerAd.gif
 차단 안 됨
 http://www.example.com/bannerad.gif


4. 지정된 도메인에만 적용 : domain=example.com 옵션은 그 필터가 오직 example.com 도메인의 페이지에만 적용됩니다. 여러 도메인을 지정하려면 구분자인 파이프 기호(|)를 사용합니다.


 필터

 설명

 domain=example.com

 example.com에만 적용함

 domain=example.com|example.net

 example.com와 example.net에만 적용함

 domain=~example.com

 example.com에만 적용 안 함

 domain=example.com|~foo.example.com

 example.com에는 적용, foo.example.com에는 적용 안 함

 

5. 차단된 요소 숨김 : 이 옵션은 전체적인 차단된 요소 접기에 우선해서 적용되며, 이 옵션이 적용된 필터는 항상 요소의 영역을 접습니다. 반대로 ~collapse 옵션은 그 필터로 하여금 요소 접기를 하지 않습니다.

5. 주석
구독 필터의 이름, 필터 유지자, 저작권, 연락처, 구독 필터 정보, 필터에 대한 부가 설명 등 정보를 추가하기 위해 주석을 사용합니다. 느낌표(!)로 시작하는 줄의 모든 문자열은 주석으로 취급되며, 필터 목록에서 회색 글자로 나타납니다. Adblock Plus는 필터링 과정에서 일반 필터와 달리 주석을 무시합니다.

!
! 구독 필터 이름 : 코르셋 (한국 구독 필터)
! 필터 유지자의 마지막 수정 :  2010년 6월 2일 수요일 오후 4:27:12
! 구독 필터의 자동 업데이트 주기 : 6시간 (Expires : 6 hours)
! 광고나 웹페이지 오작동을 발견하면 주소창의 주소를 복사해 알려주십시오.
! 코르셋에 추가된 필터는 최적화되며, 인터넷 속도 향상에 도움이 됩니다.
! 1. 블로그 : http://corset.tistory.com/guestbook
! 2. 홈페이지 : http://corset.co1.kr
! 라이선스 : http://creativecommons.org/licenses/by-sa/3.0/
!                                                                                                                                         .
!----------------------코르셋 : 일반 차단 필터--------------------------------!


6. 정규 표현식
정규 표현식은 일반 필터보다 더욱 섬세한 동작이 가능하게 필터를 이용하기 위해 사용한다. 형식은 필터의 시작과 끝을 슬래시(/)로 감싸준다. 예를 들어 /banner\d+|/는 banner123와 banner321을 차단하지만 banners는 차단하지 않는다. 그러나 정규 표현식은 느린 필터로서 다른 필터의 처리 속도에 부정적인 영향을 끼치며, 구문이 복잡해 필터 관리를 어렵게 한다는 단점이 있다.

2. 허용 필터
차단 필터로 인해 차단되지 않아야 할 콘텐츠가 차단되었을 때 사용하는 필터입니다. 필터를 제거하지 않고도 특정 주소에 필터가 적용되지 않도록 필터를 정의합니다. 허용 필터는 차단 필터의 작성과 다르지 않으며, 허용 필터을 정의하기 위해 골뱅이 2개(@@)를 필터 앞에 붙입니다.

차단 필터 : adv
차단된 정상적인 콘텐츠의 주소 : http://example.com/advice.html


  • @@||example.com/advice.html$subdocument : @@를 필터의 맨앞에 붙이면 허용 필터가 됨. 일반적으로 허용 필터를 작성할 때 "|http://"로 시작하지 않고, 도메인 앞에 파이프 기호 2개(||)를 붙인 형태로 시작합니다. 그리고 허용 범위를 최소화하기 위해 적용 형식을 한정합니다.


3. 요소 숨김 필터
1. 기본 필터
웹 페이지의 텍스트 형태의 광고는 차단 방식으로는 제거할 수 없고, 전혀 다르게 작동하는 숨김 방식에 의해 제거해야 합니다. 예를 들어 웹 페이지의 소스를 살펴보면 3개의 텍스트 광고가 있습니다. 이들 텍스트 광고는 div라는 공간을 정의하는 HTML 태그로 구성되어 있습니다.

<div class="textad" style="border:1px solid #e2e2e2;background:#F0F2F2">
<span style="font-size:9pt;">텍스트 광고1</span>
<div>
<div id="sponsorad" style="background:#F5F5F5">
<span style="font-size:9pt;">텍스트 광고2</span>
<div>
<textad>
<span style="font-size:9pt;">텍스트 광고3</span>
</textad>

  텍스트 광고1
  텍스트 광고2
  텍스트 광고3


  • ##div.textad : 텍스트 광고1 숨김(텍스트 광고는 Class 속성이 textad인 div 요소를 숨김)
  • ##div#sponsorad : 텍스트 광고2 숨김(텍스트 광고는 id 속성이 sponsorad인 div 요소를 숨김)
  • ###sponsorad : 텍스트 광고3 숨김(요소의 이름을 특정할 필요없이 요소 이름만으로 요소를 숨김)


요소 숨김 필터는 ## 기호를 포함하며 그 나머지는 부분은 숨기려는 요소를 식별하는 선택자입니다. 그리고 ## 기호 앞에는 보통 필터를 한정적으로 적용할 수 있는 도메인이 붙습니다.

요소 숨김 도우미(Element Hiding Helper, EHH)는 정확한 요소 선택과 페이지의 소스를 볼 필요 없이 일치하는 필터의 작성을 돕습니다. 그럼에도 불구하고 기본 HTML 지식은 유용합니다.

2. 요소 숨김 필터를 특정 도메인에 한정해 적용
요소 숨김 필터가 특정 사이트에서만 적용되고, 다른 사이트에서는 적용되지 않게 할 수 있습니다. 예를 들어 ##.sponsor는 여러 사이트의 요소를 숨길 것입니다.

##.sponsor


그러나 example.com##.sponsor처럼 작성된 필터 앞에 적용될 사이트를 한정해주면 특정 사이트에만 적용되는 요소 숨김 필터가 됩니다.

example.com##.sponsor


http://example.com : 필터가 적용됨
http://something.example.com : 필터가 적용됨 (하위 도메인에도 적용)
http://example.org : 필터가 적용되지 않음


지정된 여러 도메인에 필터 적용
요소 숨김 필터가 지정된 여러 도메인에 적용하기 위해서 아래와 같이 도메인을 쉼표로 구분합니다.

domain1.example,domain2.example,domain3.example##.sponsor


도메인 이름 앞에 물결 기호(~)를 붙이면 필터는 그 도메인의 페이지에는 적용되지 않습니다. 즉, example.com를 제외한 모든 도메인에 필터가 적용됩니다.

~example.com##.sponsor


그리고 적용할 도메인과 적용하지 않을 도메인을 하나의 필터에 작성할 수도 있습니다. 아래의 필터는 example.com에 필터를 적용하지만 하위 도메인인 foo.example.com에는 적용하지 않습니다.

example.com,~foo.example.com##.sponsor


  ※ 참고 사항

  • 요소 숨김이 실행되는 방식 때문에 당신은 숨김 대상을 특정 도메인으로 한정할 것을 권장합니다.
  • 도메인 제한된 요소 숨김 필터는 브라우저의 사용자 인터페이스 요소 또한 숨기기 위해 사용됩니다. 예를 들어 파이어폭스의 보기 메뉴에서 Adblock Plus 관련 항목을 숨길 수 있습니다. [바로가기]


3. 속성 선택자
몇몇 텍스트 광고는 id나 class 속성이 없을 수 있고, 그것들을 숨기기 위해 다른 속성을 사용할 수 있습니다. 예를 들어 width 속성이 80%이고, bgcolor 속성이 white로 설정된 표를 숨기려면 여러 조건을 고려해 필터를 작성합니다.

example.com##table[width="80%"][bgcolor="white"]


속성의 전체 값을 특정하지 않는 경우 속성 값의 일부분만으로도 필터를 작성할 수 있습니다.

  • ##div[id^="ads_"] : id 속성이 "ads_"로 시작하는 div 요소를 숨김
  • ##*[href*="sponsor"] : 링크 주소에 "sponsor"를 포함하는 모든 요소를 숨김
  • ##table[class$="-ad"] : class 속성이 "-ad"로 끝나는 표 요소를 숨김


※ 참고 : 속성 값의 일부분으로 작성된 필터는 일본 구독 필터인 "Japanese General Filter"를 참고하면 됩니다.

4. 고급 선택자
일반적으로  CSS 선택자는 요소 숨김을 위해 파이어폭스에서 지원됩니다. 아래의 필터는 class 속성 값이 adheader인 div 요소 다음에 오는 모든 것을 숨깁니다.

##div.adheader + *


CSS 목록의 모든 목록은 W3C CSS specification에 있습니다. (아직 파이어폭스에서 모든 선택자를 지원하지 않습니다.) 아래의 필터는 이지리스트(EasyList)에 있는 몇몇 고급 선택자입니다.

neowin.net##.promo + * + DIV.sidebar-block
btjunkie.org###main > div[height="10"]:first-child + table[width="100%"]
chicagotribune.com###story-body-parent + .rail
i4u.com###topBanner > div#right
lyricwiki.org###p-navigation + .portlet
majorgeeks.com##div > table.author > tbody > tr > td
neowin.net###sidebar > #latest-community + #social-links + .sidebar-block
tf2maps.net##form[name="search"] + div + fieldset + br + br + fieldset
winsupersite.com###footerLinks > table[width="100%"]:first-child


※ 참고 : 이 기능은 고급 사용자를 위한 것입니다. 이러한 필터를 사용하기 위해 CSS 선택자로 더욱 편리할 것입니다. Adblock Plus는 추가하는 선택자의 구문을 확인하지 않기 때문에 타당하지 않은 CSS 구문을 사용한다면 다른 타당한 필터에까지 부정적인 영향을 줄 수도 있습니다. CSS 오류를 확인하려면 자바스크립트 콘솔(Javascript Console)을 이용하십시오.


신고

댓글을 달아 주세요

Name   Password   Homepage   Secret

Post a Comment

 
부가 정보