From 9adfbd2f4dd6acc1d92f00d46d18a16e8dfd5f1b Mon Sep 17 00:00:00 2001 From: hal9 Date: Sat, 2 Sep 2006 12:49:37 +0000 Subject: [PATCH] Various small updates for new actions, filterfiles, etc. --- doc/source/p-config.sgml | 34 +- doc/source/user-manual.sgml | 340 +++++++++++++------ doc/webserver/user-manual/actions-file.html | 175 ++++++++-- doc/webserver/user-manual/appendix.html | 278 +++++++++------ doc/webserver/user-manual/config.html | 34 +- doc/webserver/user-manual/configuration.html | 4 +- doc/webserver/user-manual/copyright.html | 2 +- doc/webserver/user-manual/filter-file.html | 2 +- doc/webserver/user-manual/index.html | 26 +- doc/webserver/user-manual/installation.html | 8 +- doc/webserver/user-manual/introduction.html | 26 +- doc/webserver/user-manual/quickstart.html | 2 +- doc/webserver/user-manual/startup.html | 2 +- 13 files changed, 635 insertions(+), 298 deletions(-) diff --git a/doc/source/p-config.sgml b/doc/source/p-config.sgml index ceefe6c3..02669a0b 100644 --- a/doc/source/p-config.sgml +++ b/doc/source/p-config.sgml @@ -3,9 +3,9 @@ Purpose : Used with other docs and files only. - $Id: p-config.sgml,v 1.1.2.10 2003/02/20 13:50:37 hal9 Exp $ + $Id: p-config.sgml,v 2.5 2006/07/18 14:48:51 david__schmidt Exp $ - Copyright (C) 2001, 2002 Privoxy Developers + Copyright (C) 2001-2006 Privoxy Developers See LICENSE. ======================================================================== @@ -95,10 +95,10 @@ Sample Configuration File for Privoxy v&p-version; - $Id: p-config.sgml,v 1.1.2.10 2003/02/20 13:50:37 hal9 Exp $ + $Id: p-config.sgml,v 2.5 2006/07/18 14:48:51 david__schmidt Exp $ -Copyright (C) 2001, 2002 Privoxy Developers http://privoxy.org +Copyright (C) 2001-2006 Privoxy Developers http://privoxy.org @@ -126,7 +126,7 @@ Copyright (C) 2001, 2002 Privoxy Developers http://privoxy.org This file holds the Privoxy configuration. If you modify this - file, you will need to send a couple of requests to the proxy + file, you will need to send a couple of requests (of any kind) to the proxy before any changes take effect. @@ -376,7 +376,7 @@ actionsfile Specifies: - The filter file to use + The filter file(s) to use @@ -406,25 +406,33 @@ actionsfile Notes: - The filter file contains content modification + Multiple filterfiles lines are permitted. + + + The filter files contain content modification rules that use regular expressions. These rules permit - powerful changes on the content of Web pages, e.g., you could disable your favorite - JavaScript annoyances, re-write the actual displayed text, or just have some - fun replacing Microsoft with MicroSuck wherever - it appears on a Web page. + powerful changes on the content of Web pages, and optionally the headers + as well, e.g., you could disable your favorite JavaScript annoyances, + re-write the actual displayed text, or just have some fun replacing + Microsoft with MicroSuck wherever it appears + on a Web page. The +filter{name} actions rely on the relevant filter (name) - to be defined in the filter file! + to be defined in a filter file! A pre-defined filter file called default.filter that contains - a bunch of handy filters for common problems is included in the distribution. + a number of useful filters for common problems is included in the distribution. See the section on the filter action for a list. + + It is recommended to place any locally adapted filters into a separate + file, such as user.filter. + diff --git a/doc/source/user-manual.sgml b/doc/source/user-manual.sgml index 2b5198ec..4b286694 100644 --- a/doc/source/user-manual.sgml +++ b/doc/source/user-manual.sgml @@ -12,7 +12,7 @@ - + @@ -32,7 +32,7 @@ This file belongs into ijbswa.sourceforge.net:/home/groups/i/ij/ijbswa/htdocs/ - $Id: user-manual.sgml,v 2.14 2006/08/29 10:59:36 hal9 Exp $ + $Id: user-manual.sgml,v 2.15 2006/08/30 11:15:22 hal9 Exp $ Copyright (C) 2001- 2006 Privoxy Developers See LICENSE. @@ -58,7 +58,7 @@ -$Id: user-manual.sgml,v 2.14 2006/08/29 10:59:36 hal9 Exp $ +$Id: user-manual.sgml,v 2.15 2006/08/30 11:15:22 hal9 Exp $ @@ -135,10 +134,11 @@ Hal. Features - In addition to Internet Junkbuster's traditional - features of ad and banner blocking and cookie management, - Privoxy provides new features: + In addition to the core + features of ad blocking and cookie management, + Privoxy provides many supplemental + features, + that give the end-user more control, more privacy and more freedom: &newfeatures; @@ -373,8 +373,9 @@ automatically start Privoxy in the boot process. In order not to lose your personal changes and adjustments when updating to the latest default.action file we strongly - recommend that you use user.action for your - customization of Privoxy. See the that you use user.action and + user.filter for your local + customizations of Privoxy. See the Chapter on actions files for details. @@ -1580,12 +1581,19 @@ must find a better place for this paragraph Actions Files - The actions files are used to define what actions - Privoxy takes for which URLs, and thus determine + The actions files are used to define what actions + Privoxy takes for which URLs, and thus determines how ad images, cookies and various other aspects of HTTP content and - transactions are handled, and on which sites (or even parts thereof). There - are three such files included with Privoxy - with differing purposes: + transactions are handled, and on which sites (or even parts thereof). + There are a number of such actions, with a wide range of functionality. + Each action does something a little different. + These actions give us a veritable arsenal of tools with which to exert + our control, preferences and independence. + + + There + are three action files included with Privoxy with + differing purposes: @@ -2487,7 +2495,7 @@ new action Effect: - Deletes every header send by the client that contains the string the user supplied as parameter. + Deletes every header sent by the client that contains the string the user supplied as parameter. @@ -3336,8 +3344,10 @@ problem-host.example.com Effect: - Extend filtering capabilities to the client's headers, which - by default applies only to the document itself. + + By default, Privoxy's filters only apply + to the document content itself. This will extend those filters to + include the client's headers as well. @@ -3434,8 +3444,10 @@ problem-host.example.com Effect: - Extend filtering capabilities to the server's headers, which - by default applies only to the document itself. + + By default, Privoxy's filters only apply + to the document content itself. This will extend those filters to + include the server's headers as well. @@ -4349,7 +4361,7 @@ new action Effect: - To protect against a known exploit + Protect against a known exploit @@ -4813,7 +4825,8 @@ new action This action is useful to replace whole documents with your own - ones. For that to work, they have to be available on another server. + ones. For that to work, they have to be available on another server, + and both should resolve. You can do the same by combining the actions @@ -5250,7 +5263,7 @@ new action If you previously configured Privoxy to do the request through a SSL tunnel, everything will work. Most likely you haven't - and the server will responds with an error message because it is expecting + and the server will respond with an error message because it is expecting HTTPS. @@ -5500,11 +5513,15 @@ that also explains why and how aliases are used: { \ -add-header \ -block \ + -content-type-overwrite \ + -crunch-client-header \ + -crunch-if-none-match \ -crunch-incoming-cookies \ + -crunch-server-header \ -crunch-outgoing-cookies \ +deanimate-gifs \ -downgrade-http-version \ - +fast-redirects \ + +fast-redirects{check-decoded-url} \ +filter{js-annoyances} \ -filter{js-events} \ +filter{html-annoyances} \ @@ -5525,18 +5542,29 @@ that also explains why and how aliases are used: -filter{fun} \ -filter{crude-parental} \ +filter{ie-exploits} \ + -filter-client-headers \ + -filter-server-headers \ + -force-text-mode \ + -handle-as-empty-document \ -handle-as-image \ + -hide-accept-language \ + -hide-content-disposition \ + -hide-if-modified-since \ +hide-forwarded-for-headers \ +hide-from-header{block} \ +hide-referrer{forge} \ -hide-user-agent \ + -inspect-jpegs \ -kill-popups \ -limit-connect \ +prevent-compression \ + -overwrite-last-modified \ + -redirect \ -send-vanilla-wafer \ -send-wafer \ +session-cookies-only \ +set-image-blocker{pattern} \ + -treat-forbidden-connects-like-blocks \ } / # forward slash will match *all* potential URL patterns. @@ -5691,7 +5719,7 @@ bs*.einets.com One of the most important jobs of Privoxy - is to block banners. A huge bunch of them are already blocked + is to block banners. A huge bunch of them can be blocked by the filter{banners-by-size} action, which we enabled above, and which deletes the references to banner images from the pages while they are loaded, so the browser doesn't request @@ -5799,7 +5827,7 @@ www.ugu.com/sui/ugu/adv - The actual default.action is of course more + The actual default.action is of course much more comprehensive, but we hope this example made clear how it works. @@ -5866,9 +5894,12 @@ shop = -crunch-all-cookies allow-popups # Allow ads for selected useful free sites: # -allow-ads = -block -filter{banners-by-size} -filter{banners-by-link} +allow-ads = -block -filter{banners-by-size} -filter{banners-by-link} + +# Alias for specific file types that are text, but might have conflicting +# MIME types. We want the browser to force these to be text documents. +handle-as-text = -filter +-content-type-overwrite{text/plain} +-force-text-mode -hide-content-disposition - @@ -6017,6 +6048,19 @@ ar.atwola.com/ -filter{banners-by-link} above. + + Invoke another alias here to force an over-ride of the MIME type + application/x-sh which typically would open a download type + dialog. In my case, I want to look at the shell script, and then I can save + it should I choose to. + + + + +{ handle-as-text } +/.*\.sh$ + + user.action is generally the best place to define exceptions and additions to the default policies of @@ -7386,10 +7430,10 @@ Requests linkend="DEANIMATE-GIFS">+deanimate-gifs action applies (and the document type fits the action), the rest of the page is read into memory (up to a configurable limit). Then the filter rules (from - default.filter) are processed against the buffered - content. Filters are applied in the order they are specified in one of the - filter files. Animated GIFs, if present, are - reduced to either the first or last frame, depending on the action + default.filter and any other filter files) are + processed against the buffered content. Filters are applied in the order + they are specified in one of the filter files. Animated GIFs, if present, + are reduced to either the first or last frame, depending on the action setting.The entire page, which is now filtered, is then sent by Privoxy back to your browser. @@ -7469,7 +7513,8 @@ Requests Let's try an example, google.com, - and look at it one section at a time: + and look at it one section at a time in a sample configuration (your real + configuration may vary): @@ -7478,38 +7523,63 @@ Requests In file: default.action [ View ] [ Edit ] -{-add-header - -block - -crunch-outgoing-cookies - -crunch-incoming-cookies - +deanimate-gifs{last} - -downgrade-http-version - +fast-redirects - -filter{popups} - -filter{fun} - -filter{shockwave-flash} - -filter{crude-parental} - +filter{html-annoyances} - +filter{js-annoyances} - +filter{content-cookies} - +filter{webbugs} - +filter{refresh-tags} - +filter{nimda} - +filter{banners-by-size} - +hide-forwarded-for-headers - +hide-from-header{block} - +hide-referer{forge} - -hide-user-agent - -handle-as-image - -kill-popups - -limit-connect - +prevent-compression - -send-vanilla-wafer - -send-wafer - +session-cookies-only - +set-image-blocker{pattern} } + {-add-header + -block + -content-type-overwrite + -crunch-client-header + -crunch-if-none-match + -crunch-incoming-cookies + -crunch-outgoing-cookies + -crunch-server-header + +deanimate-gifs {last} + -downgrade-http-version + +fast-redirects {check-decoded-url} + -filter {js-events} + -filter {content-cookies} + -filter {all-popups} + -filter {banners-by-link} + -filter {tiny-textforms} + -filter {frameset-borders} + -filter {demoronizer} + -filter {shockwave-flash} + -filter {quicktime-kioskmode} + -filter {fun} + -filter {crude-parental} + -filter {site-specifics} + +filter {js-annoyances} + +filter {html-annoyances} + +filter {refresh-tags} + +filter {unsolicited-popups} + +filter {img-reorder} + +filter {banners-by-size} + +filter {webbugs} + +filter {jumping-windows} + +filter {ie-exploits} + -filter-client-headers + -filter-server-headers + -force-text-mode + -handle-as-empty-document + -handle-as-image + -hide-accept-language + -hide-content-disposition + +hide-forwarded-for-headers + +hide-from-header {block} + -hide-if-modified-since + +hide-referrer {forge} + -hide-user-agent + -inspect-jpegs + -kill-popups + -limit-connect + -overwrite-last-modified + +prevent-compression + -redirect + -send-vanilla-wafer + -send-wafer + +session-cookies-only + +set-image-blocker {pattern} + -treat-forbidden-connects-like-blocks } / - + { -session-cookies-only } .google.com @@ -7522,9 +7592,17 @@ In file: user.action [ View ] [ Edit ] - This tells us how we have defined our + This is telling us how we have defined our actions, and - which ones match for our example, google.com. The first listing + which ones match for our test case, google.com. + Displayed is all the actions that are available to us. Remember, + the + sign denotes on. - + denotes off. So some are on here, but many + are off. Each example we try may provide a slightly different + end result, depending on our configuration directives. + + + The first listing is any matches for the standard.action file. No hits at all here on standard. Then next is default, or our default.action file. The large, multi-line listing, @@ -7542,8 +7620,9 @@ In file: user.action [ View ] [ Edit ].google.com. The first is negating our previous cookie setting, which was for +session-cookies-only - (i.e. not persistent). So we will allow persistent cookies for google. The - second turns off any + (i.e. not persistent). So we will allow persistent cookies for google, at + least that is how it is in this example. The second turns + off any +fast-redirects action, allowing this to take place unmolested. Note that there is a leading @@ -7557,6 +7636,8 @@ In file: user.action [ View ] [ Edit ] Then, for our user.action file, we again have no hits. + So there is nothing google-specific that we might have added to our own, local + configuration. @@ -7571,43 +7652,56 @@ In file: user.action [ View ] [ Edit ] + -session-cookies-only + +set-image-blocker {pattern} + -treat-forbidden-connects-like-blocks Notice the only difference here to the previous listing, is to fast-redirects and session-cookies-only, - which are actived specifically for this site in our configuration. + which are actived specifically for this site in our configuration, + and thus show in the Final Results. @@ -7666,12 +7760,16 @@ In file: user.action [ View ] [ Edit ][ View ] [ Edit ] {-add-header - -block - -crunch-incoming-cookies - -crunch-outgoing-cookies + -block + -content-type-overwrite + -crunch-client-header + -crunch-if-none-match + -crunch-incoming-cookies + -crunch-outgoing-cookies + -crunch-server-header +deanimate-gifs -downgrade-http-version - +fast-redirects + +fast-redirects{check-decoded-url} +filter{html-annoyances} +filter{js-annoyances} +filter{kill-popups} @@ -7680,17 +7778,27 @@ In file: user.action [ View ] [ Edit ][ View ] [ Edit ] - Ooops, the /adsl/ is matching /ads! But - we did not want this at all! Now we see why we get the blank page. We could - now add a new action below this that explicitly does not - block ({-block}) paths with adsl. There are - various ways to handle such exceptions. Example: + Ooops, the /adsl/ is matching /ads in our + configuration! But we did not want this at all! Now we see why we get the + blank page. We could now add a new action below this that explicitly + un blocks ({-block}) paths with + adsl in them (remember, last match in the configuration wins). + There are various ways to handle such exceptions. Example: @@ -7814,6 +7923,11 @@ In file: user.action [ View ] [ Edit ]8. Actions Files

The actions files are used to define what actions +> The actions files are used to define what actions Privoxy takes for which URLs, and thus determine +> takes for which URLs, and thus determines how ad images, cookies and various other aspects of HTTP content and - transactions are handled, and on which sites (or even parts thereof). There - are three such files included with

There + are three action files included with Privoxy - with differing purposes: +> with + differing purposes:

8.1. Finding the Right Mix

8.2. How to Edit

8.4.1. The Domain Pattern

8.4.2. The Path Pattern

Effect:

Deletes every header send by the client that contains the string the user supplied as parameter. +> Deletes every header sent by the client that contains the string the user supplied as parameter.

Effect:

Extend filtering capabilities to the client's headers, which - by default applies only to the document itself. +> By default, Privoxy's filters only apply + to the document content itself. This will extend those filters to + include the client's headers as well.

Effect:

Extend filtering capabilities to the server's headers, which - by default applies only to the document itself. +> By default, Privoxy's filters only apply + to the document content itself. This will extend those filters to + include the server's headers as well.

Effect:

To protect against a known exploit +> Protect against a known exploit

This action is useful to replace whole documents with your own - ones. For that to work, they have to be available on another server. + ones. For that to work, they have to be available on another server, + and both should resolve.

You can do the same by combining the actions @@ -6310,7 +6331,7 @@ CLASS="APPLICATION" >Privoxy to do the request through a SSL tunnel, everything will work. Most likely you haven't - and the server will responds with an error message because it is expecting + and the server will respond with an error message because it is expecting HTTPS.

8.5.36. Summary

8.7.1. default.action

block \ + -content-type-overwrite \ + -crunch-client-header \ + -crunch-if-none-match \ -crunch-incoming-cookies \ + -crunch-server-header \ - \ +fast-redirectsfast-redirects{check-decoded-url} \ +filter{ie-exploits} \ -filter-client-headers \ + -filter-server-headers \ + -force-text-mode \ + -handle-as-empty-document \ + -handle-as-image \ + -hide-accept-language \ + -hide-content-disposition \ + -hide-if-modified-since \ +hide-user-agent \ + -inspect-jpegs \ -prevent-compression \ + -overwrite-last-modified \ + -redirect \ -set-image-blocker{pattern} \ + -treat-forbidden-connects-like-blocks \ } / # forward slash will match *all* potential URL patterns.Privoxy - is to block banners. A huge bunch of them are already "blocked" @@ -7480,7 +7561,7 @@ HREF="actions-file.html#FILTER" > The actual default.action is of course more +> is of course much more comprehensive, but we hope this example made clear how it works.

8.7.2. user.action

filter +-content-type-overwrite{text/plain} +-force-text-mode -hide-content-disposition - -

Say you have accounts on some sites that you visit regularly, and you don't want to have to log in manually each time. So you'd like @@ -7880,6 +7975,28 @@ HREF="actions-file.html#FILTER-BANNERS-BY-LINK" > above.

Invoke another alias here to force an over-ride of the MIME type application/x-sh which typically would open a download type + dialog. In my case, I want to look at the shell script, and then I can save + it should I choose to.

{ handle-as-text }
+/.*\.sh$

user.action

14.2.
Short cuts. Turn off, then on:

default.filter) are processed against the buffered - content. Filters are applied in the order they are specified in one of the - filter files. Animated GIFs, if present, are - reduced to either the first or last frame, depending on the action +> and any other filter files) are + processed against the buffered content. Filters are applied in the order + they are specified in one of the filter files. Animated GIFs, if present, + are reduced to either the first or last frame, depending on the action setting.The entire page, which is now filtered, is then sent by google.com, - and look at it one section at a time:

[ Edit ] -{-add-header - -block - -crunch-outgoing-cookies - -crunch-incoming-cookies - +deanimate-gifs{last} - -downgrade-http-version - +fast-redirects - -filter{popups} - -filter{fun} - -filter{shockwave-flash} - -filter{crude-parental} - +filter{html-annoyances} - +filter{js-annoyances} - +filter{content-cookies} - +filter{webbugs} - +filter{refresh-tags} - +filter{nimda} - +filter{banners-by-size} - +hide-forwarded-for-headers - +hide-from-header{block} - +hide-referer{forge} - -hide-user-agent - -handle-as-image - -kill-popups - -limit-connect - +prevent-compression - -send-vanilla-wafer - -send-wafer - +session-cookies-only - +set-image-blocker{pattern} } + {-add-header + -block + -content-type-overwrite + -crunch-client-header + -crunch-if-none-match + -crunch-incoming-cookies + -crunch-outgoing-cookies + -crunch-server-header + +deanimate-gifs {last} + -downgrade-http-version + +fast-redirects {check-decoded-url} + -filter {js-events} + -filter {content-cookies} + -filter {all-popups} + -filter {banners-by-link} + -filter {tiny-textforms} + -filter {frameset-borders} + -filter {demoronizer} + -filter {shockwave-flash} + -filter {quicktime-kioskmode} + -filter {fun} + -filter {crude-parental} + -filter {site-specifics} + +filter {js-annoyances} + +filter {html-annoyances} + +filter {refresh-tags} + +filter {unsolicited-popups} + +filter {img-reorder} + +filter {banners-by-size} + +filter {webbugs} + +filter {jumping-windows} + +filter {ie-exploits} + -filter-client-headers + -filter-server-headers + -force-text-mode + -handle-as-empty-document + -handle-as-image + -hide-accept-language + -hide-content-disposition + +hide-forwarded-for-headers + +hide-from-header {block} + -hide-if-modified-since + +hide-referrer {forge} + -hide-user-agent + -inspect-jpegs + -kill-popups + -limit-connect + -overwrite-last-modified + +prevent-compression + -redirect + -send-vanilla-wafer + -send-wafer + +session-cookies-only + +set-image-blocker {pattern} + -treat-forbidden-connects-like-blocks } / - + { -session-cookies-only } .google.com @@ -1461,7 +1487,7 @@ CLASS="GUIBUTTON" >

This tells us how we have defined our +> This is telling us how we have defined our "actions", and - which ones match for our example, "google.com". The first listing +>. + Displayed is all the actions that are available to us. Remember, + the + sign denotes "on". - + denotes "off". So some are "on" here, but many + are "off". Each example we try may provide a slightly different + end result, depending on our configuration directives.

The first listing is any matches for the standard.action"+session-cookies-only" - (i.e. not persistent). So we will allow persistent cookies for google. The - second turns Then, for our user.action file, we again have no hits.

file, we again have no hits. + So there is nothing google-specific that we might have added to our own, local + configuration.

And finally we pull it all together in the bottom section and summarize how Final results: - -add-header - -block - -crunch-outgoing-cookies - -crunch-incoming-cookies - +deanimate-gifs{last} - -downgrade-http-version - -fast-redirects - -filter{popups} - -filter{fun} - -filter{shockwave-flash} - -filter{crude-parental} - +filter{html-annoyances} - +filter{js-annoyances} - +filter{content-cookies} - +filter{webbugs} - +filter{refresh-tags} - +filter{nimda} - +filter{banners-by-size} - +hide-forwarded-for-headers - +hide-from-header{block} - +hide-referer{forge} - -hide-user-agent - -handle-as-image - -kill-popups - -limit-connect - +prevent-compression - -send-vanilla-wafer + -add-header + -block + -content-type-overwrite + -crunch-client-header + -crunch-if-none-match + -crunch-incoming-cookies + -crunch-outgoing-cookies + -crunch-server-header + +deanimate-gifs {last} + -downgrade-http-version + -fast-redirects + +filter {js-annoyances} + +filter {html-annoyances} + +filter {refresh-tags} + +filter {unsolicited-popups} + +filter {img-reorder} + +filter {banners-by-size} + +filter {webbugs} + +filter {jumping-windows} + +filter {ie-exploits} + -filter-client-headers + -filter-server-headers + -force-text-mode + -handle-as-empty-document + -handle-as-image + -hide-accept-language + -hide-content-disposition + +hide-forwarded-for-headers + +hide-from-header {block} + -hide-if-modified-since + +hide-referrer {forge} + -hide-user-agent + -inspect-jpegs + -kill-popups + -limit-connect + -overwrite-last-modified + +prevent-compression + -redirect + -send-vanilla-wafer -send-wafer - -session-cookies-only - +set-image-blocker{pattern} "session-cookies-only", - which are actived specifically for this site in our configuration.

"Final Results"
.

Now another example, {-add-header - -block - -crunch-incoming-cookies - -crunch-outgoing-cookies + -block + -content-type-overwrite + -crunch-client-header + -crunch-if-none-match + -crunch-incoming-cookies + -crunch-outgoing-cookies + -crunch-server-header +deanimate-gifs -downgrade-http-version - +fast-redirects + +fast-redirects{check-decoded-url} +filter{html-annoyances} +filter{js-annoyances} +filter{kill-popups} @@ -1744,17 +1819,27 @@ CLASS="GUIBUTTON" +filter{banners-by-size} +filter{hal} +filter{fun} + -filter-client-headers + -filter-server-headers + -force-text-mode + -handle-as-empty-document + -handle-as-image + -hide-accept-language + -hide-content-disposition +hide-forwarded-for-headers +hide-from-header{block} +hide-referer{forge} -hide-user-agent - -handle-as-image + -inspect-jpegs +kill-popups + -overwrite-last-modified +prevent-compression + -redirect -send-vanilla-wafer -send-wafer +session-cookies-only - +set-image-blocker{blank} } + +set-image-blocker{blank} + -treat-forbidden-connects-like-blocks } / { +block +handle-as-image } @@ -1770,23 +1855,24 @@ CLASS="QUOTE" > is matching "/ads"! But - we did not want this at all! Now we see why we get the blank page. We could - now add a new action below this that explicitly does in our + configuration! But we did not want this at all! Now we see why we get the + blank page. We could now add a new action below this that explicitly + notun - block ( blocks ("{-block}") paths with ) paths with + "adsl". There are - various ways to handle such exceptions. Example:

in them (remember, last match in the configuration wins). + There are various ways to handle such exceptions. Example:

The filter filefilter file(s) to use

Notes:

Multiple filterfiles lines are permitted. +

The filter file contains content modification +>filter files contain content modification rules that use regular expressions. These rules permit - powerful changes on the content of Web pages, e.g., you could disable your favorite - JavaScript annoyances, re-write the actual displayed text, or just have some - fun replacing "Microsoft" with "MicroSuck" wherever - it appears on a Web page. +> wherever it appears + on a Web page.

The @@ -553,14 +560,14 @@ CLASS="REPLACEABLE" >name) - to be defined in the filter file! + to be defined in a filter file!

A pre-defined filter file called default.filter that contains - a bunch of handy filters for common problems is included in the distribution. + a number of useful filters for common problems is included in the distribution. See the section on the action for a list.

It is recommended to place any locally adapted filters into a separate + file, such as user.filter. +

6.1. Controlling

    Privoxy Menu

12.1. License

9.1. Filter File Tutorial


$Id: user-manual.sgml,v 2.14 2006/08/29 10:59:36 hal9 Exp $

$Id: user-manual.sgml,v 2.15 2006/08/30 11:15:22 hal9 Exp $

Privoxy is a web proxy with advanced filtering - capabilities for protecting privacy, modifying web page content, managing + capabilities for protecting privacy, modifying web page data, managing cookies, controlling access, and removing ads, banners, pop-ups and other obnoxious Internet junk.
6.1. Controlling Privoxy
8.1. Finding the Right Mix
8.2. How to Edit
8.4.1. The Domain Pattern
8.4.2. The Path Pattern
8.5.36. Summary
8.7.1. default.action
8.7.2. user.action
9.1. Filter File Tutorial
12.1. License
14.2. Privoxy that you use user.action for your - customization of and + user.filter for your local + customizations of Privoxy. See the 1. Introduction

This documentation is included with the current BETA version of +> This documentation is included with the current beta version of Privoxy, v.3.0.4, and is mostly complete at this point. The most up to date reference for the time being is still the comments in the source files and in the individual - configuration files. Development of version 3.0 is currently nearing - completion, and includes many significant changes and enhancements over - earlier versions. The target release date for - stable v3.0 is "soon" ;-).

Since this is a BETA version, not all new features are well tested. This +> Since this is a beta version, not all new features are well tested. This documentation may be slightly out of sync as a result (especially with CVS sources). And there 1.1. Features

In addition to Internet Junkbuster's traditional - features of ad and banner blocking and cookie management, +> In addition to the core + features of ad blocking and cookie management, Privoxy provides new features, - some of them currently under development:

provides many supplemental + features, some of them currently under development, + that give the end-user more control, more privacy and more freedom: