Done testing.
[privoxy.git] / default.action
1 #############################################################################
2 #
3 # Bare-bones actions file for Privoxy pre release testdrive
4 #
5 # For information, see http://www.oesterhelt.org/testdrive
6 #
7 #############################################################################
8
9 ######################################################################
10
11 #  File        :  $Source: /cvsroot/ijbswa/current/default.action,v $
12
13 #  $Id: default.action,v 1.14 2002/04/08 20:47:24 swa Exp $
14 #
15 #  Purpose     :  Default actions file, see
16 #                 http://www.privoxy.org/faq/questions.html#CONFIGFILES
17 #
18 #  Copyright   :  Written by and Copyright
19 #                 Privoxy team. http://www.privoxy.org/
20 #
21 #                 Based on the Internet Junkbuster originally written
22 #                 by and Copyright (C) 1997 Anonymous Coders and
23 #                 Junkbusters Corporation.  http://www.junkbusters.com
24
25 # We value your feedback. However, to provide you with the best support,
26 # please note:
27 #  
28 #  * Use the support forum to get help:
29 #    http://sourceforge.net/tracker/?group_id=11118&atid=211118
30 #  * Submit feedback for this actions file only through our
31 #    actions file feedback script: http://www.privoxy.org/actions
32 #  * Submit bugs only through our bug forum:
33 #    http://sourceforge.net/tracker/?group_id=11118&atid=111118 
34 #    Make sure that the bug has not already been submitted. Please try
35 #    to verify that it is a Privoxy bug, and not a browser or site
36 #    bug first. If you are using your own custom configuration, please
37 #    try the stock configs to see if the problem is a configuration
38 #    related bug. And if not using the latest development snapshot,
39 #    please try the latest one. Or even better, CVS sources.
40 #  * Submit feature requests only through our feature request forum:
41 #    http://sourceforge.net/tracker/?atid=361118&group_id=11118&func=browse
42 #      
43 # For any other issues, feel free to use the mailing lists:
44 # http://sourceforge.net/mail/?group_id=11118
45 #    
46 # Anyone interested in actively participating in development and related
47 # discussions can join the appropriate mailing list here:
48 # http://sourceforge.net/mail/?group_id=11118. Archives are available
49 # here too.
50
51 #############################################################################
52 # Syntax
53 #############################################################################
54
55 # To determine which actions apply to a request, the URL of the request is
56 # compared to all patterns in this file. Every time it matches, the list of
57 # applicable actions for this URL is incrementally updated. You can trace
58 # this process by visiting http://i.j.b/show-url-info
59 #
60 # There are 4 types of lines in this file: comments (like this line),
61 # actions, aliases and patterns, all of which are explained below.
62 #
63 #############################################################################
64 # Pattern Syntax
65 #############################################################################
66
67 # 1. On Domains and Paths
68 # -----------------------
69 #
70 # Generally, a pattern has the form <domain>/<path>, where both the <domain>
71 # and <path> part are optional. If you only specify a domain part, the "/"
72 # can be left out:
73
74 # www.example.com 
75 #   is a domain-only pattern and will match any request to www.yahoo.com
76
77 # www.example.com/
78 #   means exactly the same (but is slightly less efficient)
79
80 # www.example.com/index.html
81 #   matches only the document /index.html on www.example.com
82
83 # /index.html
84 #   matches the document /index.html, regardless of the domain
85
86 # index.html
87 #   matches nothing, since it would be interpreted as a domain name and
88 #   there is no top-level domain called ".html".
89
90 # 2. Domain Syntax
91 # ----------------
92
93 # The matching of the domain part offers some flexible options: If the
94 # domain starts or ends with a dot, it becomes unanchored at that end:
95
96 # www.example.com
97 #   matches only www.example.com
98
99 # .example.com
100 #   matches any domain that ENDS in .example.com
101
102 # www.
103 #   matches any domain that STARTS with www.
104
105 # Additionally, there are wildcards that you can use in the domain names
106 # themselves. They work pretty similar to shell wildcards: "*" stands for
107 # zero or more arbitrary characters, "?" stands for one, and you can define
108 # charachter classes in square brackets and they can be freely mixed:
109
110 # ad*.example.com
111 #   matches adserver.example.com, ads.example.com, etc but not sfads.example.com
112
113 # *ad*.example.com
114 #   matches all of the above
115
116 # .?pix.com
117 #   matches www.ipix.com, pictures.epix.com, a.b.c.d.e.upix.com etc
118
119 # www[1-9a-ez].example.com
120 #   matches www1.example.com, www4.example.com, wwwd.example.com, 
121 #   wwwz.example.com etc, but not wwww.example.com
122
123 # You get the idea?
124
125 # 2. Path Syntax
126 # --------------
127
128 # Paths are specified as regular expressions. A comprehensive discussion of
129 # regular expressions wouldn't fit here, but (FIXME) someone should paste
130 # a concise intro to the regex language here.
131
132 # If Privoxy was compiled with pcre support (default), Perl compatible
133 # regular expressions are used. See the pcre/docs/ direcory or man perlre
134 # (also available on http://www.perldoc.com/perl5.6/pod/perlre.html) for
135 # details.
136
137 # Please note that matching in the path is CASE INSENSITIVE by default, but
138 # you can switch to case sensitive by starting the pattern with the "(?-i)"
139 # switch:
140
141 # www.example.com/(?-i)PaTtErN.*
142 #   will match only documents whose path starts with PaTtErN in exactly this
143 #   capitalization.
144 #
145 # Partially case-sensetive and partially case-insensitive patterns are
146 # possible, but the rules about splitting them up are extremely complex
147 # - see the PCRE documentation for more information.
148
149 #############################################################################
150 # Action Syntax
151 #############################################################################
152 #
153 # There are 3 kinds of action:
154 #
155 # Boolean (e.g. "block"):
156 #   +name  # enable
157 #   -name  # disable
158 #
159 # Parameterized (e.g. "hide-user-agent"):
160 #   +name{param}  # enable and set parameter to "param"
161 #   -name         # disable
162 #
163 # Multi-value (e.g. "add-header", "wafer"):
164 #   +name{param}  # enable and add parameter "param"
165 #   -name{param}  # remove the parameter "param"
166 #   -name         # disable totally
167 #
168 # The default (if you don't specify anything in this file) is not to take
169 # any actions - i.e completely disabled, so Privoxy will just be a
170 # normal, non-blocking, non-anonymizing proxy.  You must specifically
171 # enable the privacy and blocking features you need (although the 
172 # provided default actions file will do that for you).
173 #
174 # Later actions always override earlier ones.  For multi-valued actions,
175 # the actions are applied in the order they are specified.
176 #
177 #############################################################################
178 # Valid actions are:
179 #############################################################################
180 #
181 # +add-header{Name: value}
182 #    Adds the specified HTTP header, which is not checked for validity.
183 #    You may specify this many times to specify many headers.
184 #
185 # +block
186 #    Block this URL
187 #
188 # +deanimate-gifs{last}
189 # +deanimate-gifs{first}
190 #    Deanimate all animated GIF images, i.e. reduce them to their last
191 #    frame. This will also shrink the images considerably. (In bytes,
192 #    not pixels!) 
193 #    If the option "first" is given, the first frame of the animation
194 #    is used as the replacement. If "last" is given, the last frame of
195 #    the animation is used instead, which propably makes more sense for
196 #    most banner animations, but also has the risk of not showing the
197 #    entire last frame (if it is only a delta to an earlier frame).
198 #
199 # +downgrade
200 #    Downgrade HTTP/1.1 client requests to HTTP/1.0 and downgrade the
201 #    responses as well. Use this action for servers that use HTTP/1.1
202 #    protocol features that Privoxy currently can't handle yet.
203 #
204 # +fast-redirects
205 #    Many sites, like yahoo.com, don't just link to other sites.
206 #    Instead, they will link to some script on their own server,
207 #    giving the destination as a parameter, which will then redirect
208 #    you to the final target. 
209 #
210 #    URLs resulting from this scheme typically look like:
211 #    http://some.place/some_script?http://some.where-else
212 #
213 #    Sometimes, there are even multiple consecutive redirects encoded
214 #    in the URL. These redirections via scripts make your web browing
215 #    more traceable, since the server from which you follow such a link
216 #    can see where you go to. Apart from that, valuable bandwidth and
217 #    time is wasted, while your browser aks the server for one redirect
218 #    after the other. Plus, it feeds the advertisers.
219 #
220 #    The +fast-redirects option enables interception of these requests
221 #    by Privoxy, who will cut off all but the last valid URL in the
222 #    request and send a local redirect back to your browser without
223 #    contacting the intermediate sites.
224 #
225 # +filter{name}
226 #    Filter the website through one or more regular expression filters.
227 #    Repeat for multiple filters.
228 #   
229 #    Filters predefined in the supplied re_filterfile include:
230 #
231 #     html-annoyances:  Get rid of particularly annoying HTML abuse
232 #     js-annoyances:    Get rid of particularly annoying JavaScript abuse
233 #     no-poups:         Kill all popups in JS and HTML
234 #     frameset-borders: Give frames a border
235 #     webbugs:          Squish WebBugs (1x1 invisible GIFs used for user tracking)
236 #     no-refresh:       Automatic refresh sucks on auto-dialup lines
237 #     fun:              Text replacements  for subversive browsing fun!
238 #     nimda:            Remove (virus) Nimda code.
239 #     banners-by-size:  Kill banners by size
240 #     crude-parental:   Kill all web pages that contain the words "sex" or "warez"
241 #
242 #
243 # +hide-forwarded
244 #    Block any existing X-Forwarded-for header, and do not add a new one.
245 #
246 # +hide-from{block}
247 # +hide-from{spam@sittingduck.xqq}
248 #    If the browser sends a "From:" header containing your e-mail address, 
249 #    either completely removes the header ("block"), or change it to the
250 #    specified e-mail address.
251 #
252 # +hide-referer{block}
253 # +hide-referer{forge}
254 # +hide-referer{http://nowhere.com}
255 #    Don't send the "Referer:" (sic) header to the web site.  You can
256 #    block it, forge a URL to the same server as the request (which is
257 #    preferred because some sites will not send images otherwise) or
258 #    set it to a constant string.
259 #
260 # +hide-referrer{...}
261 #    Alternative spelling of +hide-referer.  Has the same parameters,
262 #    and can be freely mixed with, "+hide-referer".  ("referrer" is the 
263 #    correct English spelling, however the HTTP specification has a 
264 #    bug - it requires it to be spelt "referer").
265 #
266 # +hide-user-agent{browser-type}
267 #    Change the "User-Agent:" header so web servers can't tell your
268 #    browser type.  (Breaks many web sites).  Specify the user-agent
269 #    value you want - e.g., to pretend to be using Netscape on Linux:
270 #      +hide-user-agent{Mozilla (X11; I; Linux 2.0.32 i586)}
271 #    Or to identify yourself explicitly as a Privoxy user:
272 #      +hide-user-agent{Privoxy/1.0}
273 #    (Don't change the version number from 1.0 - after all, why tell them?)
274 #
275 # +image
276 #    Treat this URL as an image.  This only matters if it's also "+block"ed,
277 #    in which case a "blocked" image can be sent rather than a HTML page.
278 #    See +image-blocker{} for the control over what is actually sent.
279 #
280 # +image-blocker{blank}
281 # +image-blocker{pattern}
282 # +image-blocker{<URL>} with <url> being any valid image URL
283 #    Decides what to do with URLs that end up tagged with {+block +image}.
284 #    There are 4 options:
285 #      * "-image-blocker" will send a HTML "blocked" page, usually
286 #        resulting in a "broken image" icon.
287 #      * "+image-blocker{blank}" will send a 1x1 transparent image
288 #      * "+image-blocker{pattern}" will send a 4x4 grey/white pattern
289 #        which is less intrusive than the logo but easier to recognize
290 #        than the transparent one.
291 #      * "+image-blocker{<URL>}" will send a HTTP temporary redirect
292 #        to the specified image URL.
293 #
294 #
295 # +limit-connect{portlist}
296 #   The CONNECT methods exists in HTTP to allow access to secure websites
297 #   (https:// URLs) through proxies. It works very simply: The proxy
298 #   connects to the server on the specified port, and then short-circuits
299 #   its connections to the cliant and to the remote proxy.
300 #   This can be a big security hole, since CONNECT-enabled proxies can
301 #   be abused as TCP relays very easily.
302 #   By default, i.e. in the absence of a +limit-connect action, Privoxy
303 #   will only allow CONNECT requests to port 443, which is the standard port
304 #   for https.
305 #   If you want to allow CONNECT for more ports than that, or want to forbid
306 #   CONNECT altogether, you can specify a comma separated list of ports and port
307 #   ranges (the latter using dashes, with the minimum defaulting to 0 and max to 65K):
308 #
309 #   +limit-connect{443} # This is the default and need no be specified.
310 #   +limit-connect{80,443} # Ports 80 and 443 are OK.
311 #   +limit-connect{-3, 7, 20-100, 500-} # Port less than 3, 7, 20 to 100, and above 500 are OK.
312 #
313 # +no-compression
314 #    Prevent the website from compressing the data. Some websites do
315 #    that, which is a problem for Privoxy, since +filter, +no-popup
316 #    and +gif-deanimate will not work on compressed data. Will slow down
317 #    connections to those websites, though.
318 #
319 # +no-cookies-keep
320 #    If the website sets cookies, make sure they are erased when you exit
321 #    and restart your web browser.  This makes profiling cookies useless,
322 #    but won't break sites which require cookies so that you can log in
323 #    or for transactions.
324 #
325 # +no-cookies-read
326 #    Prevent the website from reading cookies
327 #
328 # +no-cookies-set
329 #    Prevent the website from setting cookies
330 #
331 # +no-popup
332 # +no-popups
333 #    Filter the website through a built-in filter to disable
334 #    1;''.concat() etc.  The two alternative spellings are
335 #    equivalent.
336 #
337 # +vanilla-wafer
338 #    This action only applies if you are using a jarfile.  It sends a
339 #    cookie to every site stating that you do not accept any copyright
340 #    on cookies sent to you, and asking them not to track you.  Of
341 #    course, this is a (relatively) unique header they could use to 
342 #    track you.
343 #
344 # +wafer{name=value}
345 #    This allows you to add an arbitrary cookie.  Specify it multiple
346 #    times in order to add several cookies.
347 #
348 #############################################################################
349
350
351 #############################################################################
352 # Aliases
353 #############################################################################
354 {{alias}}
355 #############################################################################
356 #
357 # You can define a short form for a list of permissions - e.g., instead
358 # of "-no-cookies-set -no-cookies-read -filter -fast-redirects", you can
359 # just write "shop".  This is called an alias.
360 #
361 # Currently, an alias can contain any character except space, tab, '=', '{'
362 # or '}'.
363 # But please use only 'a'-'z', '0'-'9', '+', and '-'.
364 #
365 # Alias names are not case sensitive.
366 #
367 # Aliases beginning with '+' or '-' may be used for system permission names 
368 # in future releases - so try to avoid alias names like this.  (e.g. 
369 # "+no-cookies" below is not a good name)
370 #
371 # Aliases must be defined before they are used.
372
373
374 # Useful aliases
375 +no-cookies = +no-cookies-set +no-cookies-read
376 -no-cookies = -no-cookies-set -no-cookies-read
377 +imageblock = +block +image
378
379 # Fragile sites should have the minimum changes
380 fragile     = -block -deanimate-gifs -fast-redirects -filter -hide-referer -no-cookies -no-popups
381
382 # Shops should be allowed to set persistent cookies
383 shop        = -filter -no-cookies -no-cookies-keep
384
385 # Your favourite blend of filters:
386 #
387 myfilters   = +filter{html-annoyances} +filter{js-annoyances} +filter{no-popups}\
388               +filter{webbugs} +filter{nimda} +filter{banners-by-size} #+filter{fun}
389
390 #... etc.  Customize to your heart's content.
391
392 #############################################################################
393 # Defaults
394 #############################################################################
395 {\
396 -add-header \
397 -block \
398 +deanimate-gifs{last} \
399 -downgrade \
400 +filter{html-annoyances} \
401 +filter{content-cookies} \
402 +filter{js-annoyances} \
403 +filter{no-popups} \
404 +filter{webbugs} \
405 +filter{nimda} \
406 +filter{banners-by-size} \
407 +hide-forwarded \
408 +hide-from{block} \
409 +hide-referer{forge} \
410 -hide-user-agent \
411 -image \
412 +image-blocker{pattern} \
413 +no-compression \
414 +no-cookies-keep \
415 -no-cookies-read \
416 -no-cookies-set \
417 +no-popups \
418 -vanilla-wafer \
419 -wafer \
420 }
421 / # Match all URLs
422
423
424 #############################################################################
425 # Needed for automatic feedback evaluation; Please don't delete!
426 #############################################################################
427 {+add-header{X-Actions-File-Version: 1.2} -filter -no-popups}
428 .privoxy.org/actions
429 .oesterhelt.org/actions
430
431
432 #############################################################################
433 # These sites are very complex and require
434 # minimal interference.
435 #############################################################################
436 {fragile}
437 .office.microsoft.com
438 .windowsupdate.microsoft.com
439
440 #############################################################################
441 # Shopping sites - still want to block ads.
442 #############################################################################
443 {shop}
444 .quietpc.com
445 .worldpay.com   # for quietpc.com
446 .jungle.com
447 .scan.co.uk
448
449 #############################################################################
450 # These shops require pop-ups
451 #############################################################################
452 {shop -no-popups -filter{no-poups}}
453 .dabs.com
454 .overclockers.co.uk
455
456 #############################################################################
457 # Sometimes fast-redirects catches things by mistake
458 #############################################################################
459 {-fast-redirects}
460 www.ukc.ac.uk/cgi-bin/wac\.cgi\?
461 login.yahoo.com
462 edit.europe.yahoo.com
463 .google.com
464 .altavista.com/.*(like|url|link):http
465 .altavista.com/trans.*urltext=http
466 .speedfind.de
467 .nytimes.com
468
469 #############################################################################
470 # Don't filter code!
471 #############################################################################
472 {-filter}
473 .cvs.sourceforge.net
474
475 #############################################################################
476 # Imagelist:
477 #############################################################################
478 {+image}
479 #############################################################################
480 /.*\.(gif|jpe?g|png|bmp|ico)
481
482 #############################################################################
483 {+imageblock}
484 #############################################################################
485 #BLOCK-REFERRER: http://www.cnn.com/
486 #BLOCK-REFERRER: http://www.aol.com/
487 ar.atwola.com 
488
489 #BLOCK-REFERRER: http://www.altavista.com/
490 .ad.doubleclick.net
491
492 .a.yimg.com/(?:(?!/i/).)*$
493 .a[0-9].yimg.com/(?:(?!/i/).)*$
494
495
496
497 #BLOCK-REFERRER: 
498 bs*.gsanet.com
499 bs*.einets.com
500
501 #BLOCK-REFERRER: Opera browser built-in
502 .qkimg.net
503
504 #BLOCK-REFERRER: http://www.tecchannel.de/index.html
505 #BLOCK-REFERRER: and thousands more
506 ad.*.doubleclick.net
507
508 #############################################################################
509 # Blocklist:
510 #############################################################################
511 {+block}
512 #############################################################################
513 #BLOCK-GENERIC:
514 ad*.
515 .*ads.
516 banner?.
517 count*.
518
519 /(?:.*/)?(ads(erver?|tream)?|.*?ads|adv(ert(s|enties|is(ing|e?ments)?)?)?|(ad)?[-_]?banner(s|ads?|farm)?)/
520 /.*count(er)?\.(pl|cgi|exe|dll|asp|php[34]?)
521 /(?:.*/)?(publicite|werbung|rekla(ma|me|am)|annonse|maino(kset|nta|s)?)/
522
523 #BLOCK-REFERRER: http://www.brooksbrothers.com
524 #BLOCK-REFERRER: http://www.autodesk.com
525 .hitbox.com 
526
527 #############################################################################
528 {-block}
529 #############################################################################
530 include.ebay.com
531 advogato.org
532 adsl.
533 ad[ud]*.
534 advice.
535 .edu
536 .ac.uk
537 .uni-*.de
538 www.ugu.com/sui/ugu/adv
539 .*downloads.