X-Git-Url: http://www.privoxy.org/gitweb/?a=blobdiff_plain;f=default.filter;h=4040763e4478967bf7dbce58324423bd7a31ce2e;hb=99b2f0c53ff11f3b2bdf8a812f0b61c03ab424b9;hp=4974cf28db2d888047fc2283f2769bac944ec0e2;hpb=1015a9f6cb8ffa6864e2de9c191d700a67bc3dc6;p=privoxy.git diff --git a/default.filter b/default.filter index 4974cf28..4040763e 100644 --- a/default.filter +++ b/default.filter @@ -2,17 +2,13 @@ # # File : $Source: /cvsroot/ijbswa/current/default.filter,v $ # -# $Id: default.filter,v 1.6 2002/04/03 19:49:52 swa Exp $ +# $Id: default.filter,v 1.15 2002/11/08 16:40:56 oes Exp $ # # Purpose : Rules to process the content of web pages # # Copyright : Written by and Copyright # Privoxy team. http://www.privoxy.org/ # -# Based on the Internet Junkbuster originally written -# by and Copyright (C) 1997 Anonymous Coders and -# Junkbusters Corporation. http://www.junkbusters.com -# # We value your feedback. However, to provide you with the best support, # please note: # @@ -66,48 +62,70 @@ ################################################################################# # -# html-annoyances: Get rid of particularly annoying HTML abuse +# js-annoyances: Get rid of particularly annoying JavaScript abuse # ################################################################################# -FILTER: html-annoyances Get rid of particularly annoying HTML abuse +FILTER: js-annoyances Get rid of particularly annoying JavaScript abuse -# New browser windows (if allowed -- see no-popups filter below) should be -# resizeable and have a location and status bar +# Note: Most of these jobs would be safer if restricted to a +# )|$1never|sigU -# Is this evil? +# If we allow window.open, we want normal window features: +# Test: http://www.htmlgoodies.com/beyond/notitle.html # -#s/margin(height|width)=[0-9]*//gi -#s/noresize/yesresize/igU +s/(open\s*\([^\)]+resizable=)(["']?)(?:no|0)\2/$1$2yes$2/sigU +s/(open\s*\([^\)]+location=)(["']?)(?:no|0)\2/$1$2yes$2/sigU +s/(open\s*\([^\)]+status=)(["']?)(?:no|0)\2/$1$2yes$2/sigU +s/(open\s*\([^\)]+scroll(?:ing|bars)=)(["']?)(?:no|0)\2/$1$2auto$2/sigU +s/(open\s*\([^\)]+menubar=)(["']?)(?:no|0)\2/$1$2yes$2/sigU +s/(open\s*\([^\)]+toolbar=)(["']?)(?:no|0)\2/$1$2yes$2/sigU +s/(open\s*\([^\)]+directories=)(["']?)(?:no|0)\2/$1$2yes$2/sigU +s/(open\s*\([^\)]+fullscreen=)(["']?)(?:yes|1)\2/$1$2no$2/sigU +s/(open\s*\([^\)]+always(?:raised|lowered)=)(["']?)(?:yes|1)\2/$1$2no$2/sigU +s/(open\s*\([^\)]+zlock=)(["']?)(?:yes|1)\2/$1$2no$2/sigU +s/(open\s*\([^\)]+hotkeys=)(["']?)(?:yes|1)\2/$1$2no$2/sigU +s/(open\s*\([^\)]+titlebar=)(["']?)(?:yes|1)\2/$1$2yes$2/sigU ################################################################################# # -# js-annoyances: Get rid of particularly annoying JavaScript abuse +# html-annoyances: Get rid of particularly annoying HTML abuse # ################################################################################# -FILTER: js-annoyances Get rid of particularly annoying JavaScript abuse - -# Get rid of Javascript referrer tracking. Test page: http://www.randomoddness.com/untitled.htm -# -s|()|$1"Not Your Business!"$2|Usg +FILTER: html-annoyances Get rid of particularly annoying HTML abuse -# The status bar is for displaying link targets, not pointless blahblah +# New browser windows (if allowed -- see no-popups filter below) should be +# resizeable and have a location and status bar # -s/status='.*?';*//ig +s/(]+resizable=)(['"]?)(?:no|0)\2/$1$2yes$2/igU +s/(]+location=)(['"]?)(?:no|0)\2/$1$2yes$2/igU +s/(]+status=)(['"]?)(?:no|0)\2/$1$2yes1$2/igU +s/(]+scrolling=)(['"]?)(?:no|0)\2/$1$2auto$2/igU +s/(]+menubar=)(['"]?)(?:no|0)\2/$1$2yes$2/igU -# Kill OnUnload popups. Yummy. Test: http://www.zdnet.com/zdsubs/yahoo/tree/yfs.html +# The tag was a crime! # -s/()/$1never$2/iU +s*|**ig ################################################################################# @@ -119,56 +137,141 @@ FILTER: content-cookies Kill cookies that come in the HTML or JS content # JS cookies, like found on privacy.net: # -s|(document\.cookie)([ \t\r\n]*=)|documenZapCooky$2|g +s|document\.cookie(?=[ \t\r\n]*=)|ZappedCookie|ig # HTML cookies: # -s|].*>||iUT +s|||igU + + +################################################################################# +# +# webbugs: Squish WebBugs (1x1 invisible GIFs used for user tracking) +# +################################################################################# +FILTER: webbugs Squish WebBugs (1x1 invisible GIFs used for user tracking) + +s/]*(?:width|height)\s*=\s*['"]?1(?=\D)[^>]*(?:width|height)\s*=\s*['"]?1(?=\D)[^>]*?>//siUg ################################################################################## # -# no-popups: Kill all popups in JS and HTML +# popups: Kill all popups in JS and HTML # ################################################################################# -FILTER: no-popups Kill all popups in JS and HTML +FILTER: popups Kill all popups in JS and HTML + +s/([\n =;{}]|window\.)open\s*\\?\(/$1concat(/ig # JavaScript +s/ target\s*=\s*(['"]?)(_blank|_new)\1?/ notarget/ig # HTML -s/window\.open\(/1;''\.concat\(/ig # JavaScript -s/target=['"]?_blank['"]?/target_crunched/ig # HTML -s/target=['"]?_new['"]?/target_crunched/ig # HTML ################################################################################# # -# frameset-borders: Give frames a border and make them resizable +# frameset-borders: Give frames a border, make them resizable and scrollable # ################################################################################# FILTER: frameset-borders Give frames a border and make them resizable -s/(]+)framespacing=['"]?(no|0)['"]?(.*>)/$1$3/igU -s/(]+)frameborder=['"]?(no|0)['"]?(.*>)/$1$3/igU -s/(]+)border=['"]?(no|0)['"]?(.*>)/$1$3/igU -s/(]+)resizable=['"]?(no|0|false)['"]?(.*>)/$1$3/igU +s/(]*)framespacing=(['"]?)(no|0)\2/$1/igU +s/(]*)frameborder=(['"]?)(no|0)\2/$1/igU +s/(]*)border=(['"]?)(no|0)\2/$1/igU +s/(]*)noresize/$1/igU +s/(]*)frameborder=(['"]?)(no|0)\2/$1/igU +s/(]*)scrolling=(['"]?)(no|0)\2/$1/igU + ################################################################################# # -# webbugs: Squish WebBugs (1x1 invisible GIFs used for user tracking) +# refresh-tags: Kill automatic refresh tags (for dial-on-demand setups) # ################################################################################# -FILTER: webbugs Squish WebBugs (1x1 invisible GIFs used for user tracking) +FILTER: refresh-tags Kill automatic refresh tags (for dial-on-demand setups) + +# Note: Only deactivates refreshes with more than 9 seconds delay to +# preserve monster-stupid but common redirections via meta tags. +# +s/\2]*))?\2/ tags to make the banners-by-* filters more effective +# +################################################################################# +FILTER: img-reorder Reorder attributes in tags to make the banners-by-* filters more effective -s/]*?(width|height)\s*=\s*['"]?1\D[^>]*?(width|height)\s*=\s*['"]?1(\D[^>]*?)?>//sig +# In the first step src is moved to the start, then width is moved to the second +# place to guarantee an order of src, width, height. +# This makes banners-by-size more effective and allows both banners-by-size +# and banners-by-link to preserve the original image URL in the alt attribute. + +s|]*) src\s*=\s*(['"])([^>\\\2]+)\2|]*) src\s*=\s*([^'">\\\s]+)|\\\\2]+\2\|[^'">\\\s]+?))([^>]*)width\s*=\s*(["']?)(\d+?)|\\\1\s]+)\1)?[^>]*?(width=(['"]?)88\4)[^>]*?(height=(['"]?)31\6)[^>]*>@$1Killed-$2-by-size$1@sig +# 120*60, 120*90, 120*240, 120*600 +s@\\\1\s]+)\1)?[^>]*?(width=(['"]?)120\4)[^>]*?(height=(['"]?)(?:600?|90|240)\6)[^>]*>@$1Killed-$2-by-size$1@sig +# 125*125 +s@\\\1\s]+)\1)?[^>]*?(width=(['"]?)125\4)[^>]*?(height=(['"]?)125\6)[^>]*>@$1Killed-$2-by-size$1@sig +# 160*600 +s@\\\1\s]+)\1)?[^>]*?(width=(['"]?)160\4)[^>]*?(height=(['"]?)600\6)[^>]*>@$1Killed-$2-by-size$1@sig +# 180*150 +s@\\\1\s]+)\1)?[^>]*?(width=(['"]?)180\4)[^>]*?(height=(['"]?)150\6)[^>]*>@$1Killed-$2-by-size$1@sig +# 234*60, 468*60 (Most Banners!) +s@\\\1\s]+)\1)?[^>]*?(width=(['"]?)(?:234|468)\4)[^>]*?(height=(['"]?)60\6)[^>]*>@$1Killed-$2-by-size$1@sig +# 240*400 +s@\\\1\s]+)\1)?[^>]*?(width=(['"]?)240\4)[^>]*?(height=(['"]?)400\6)[^>]*>@$1Killed-$2-by-size$1@sig +# 250*250, 300*250 +s@\\\1\s]+)\1)?[^>]*?(width=(['"]?)(?:250|300)\4)[^>]*?(height=(['"]?)250\6)[^>]*>@$1Killed-$2-by-size$1@sig +# 336*280 +s@\\\1\s]+)\1)?[^>]*?(width=(['"]?)336\4)[^>]*?(height=(['"]?)280\6)[^>]*>@$1Killed-$2-by-size$1@sig + +# Note: 200*50 was also proposed, but it probably causes too much collateral damage: +# +#s@\\\1\s]+)\1)?[^>]*?(width=(['"]?)200\4)[^>]*?(height=(['"]?)50\6)[^>]*>@$1Killed-$2-by-size$1@sig + + +################################################################################# +# +# banners-by-link: Kill banners by their links to known clicktrackers +# +################################################################################# +FILTER: banners-by-link Kill banners by their links to known clicktrackers -s/]*)['"]?>//iU -s/].*>//iU +# Common case with width and height attributes: +# +s@\1\s]*?(?:\ + adclick # See www.dn.se \ +| atwola\.com/(?:link|redir) # see www.cnn.com \ +| /jump/ # redirs for doublecklick.net ads \ +| tracker | counter # common \ +| adlog\.pl # see sf.net \ +)[^>\1\s]*)\1[^>]*>\s*\\\3\s]+)\3)?[^>]*((?:width|height)\s*=\s*(['"]?)\d+?\6)[^>]*((?:width|height)\s*=\s*(['"]?)\d+?\8)[^>]*>\ +@$1Killed@sigx +# Rare case w/o explicit dimensions: +# +s@\1\s]*?(?:adclick|atwola\.com/(?:link|redir)|doubleclick\.net/jump/|tracker|counter|adlog\.pl)[^>\1\s]*)\1[^>]*>\s*\\\3\s]+)\3)?[^>]*>@$1Killed@sig ################################################################################# # @@ -179,10 +282,12 @@ FILTER: fun Text replacements for subversive browsing fun! s/microsoft(?!.com)/MicroSuck/ig -# Buzzword Bingo (example for extended syntax) +# Buzzword Bingo (example for extended regex syntax) # s* industry[ -]leading \ | cutting[ -]edge \ +| customer[ -]focused \ +| market[ -]driven \ | award[ -]winning # Comments are OK, too! \ | high[ -]performance \ | solutions[ -]based \ @@ -205,37 +310,34 @@ s%