From: hal9 <hal9@users.sourceforge.net> Date: Sat, 2 Sep 2006 12:49:37 +0000 (+0000) Subject: Various small updates for new actions, filterfiles, etc. X-Git-Tag: v_3_0_5~111 X-Git-Url: http://www.privoxy.org/gitweb/%22https:/faq/@default-cgi@/static/diff?a=commitdiff_plain;h=9adfbd2f4dd6acc1d92f00d46d18a16e8dfd5f1b;p=privoxy.git Various small updates for new actions, filterfiles, etc. --- 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 <developers@privoxy.org> + Copyright (C) 2001-2006 Privoxy Developers <developers@privoxy.org> See LICENSE. ======================================================================== @@ -95,10 +95,10 @@ Sample Configuration File for Privoxy v&p-version; </title> <para> - $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 $ </para> <para> -Copyright (C) 2001, 2002 Privoxy Developers http://privoxy.org +Copyright (C) 2001-2006 Privoxy Developers http://privoxy.org </para> <para> @@ -126,7 +126,7 @@ Copyright (C) 2001, 2002 Privoxy Developers http://privoxy.org <para> 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. </para> <para> @@ -376,7 +376,7 @@ actionsfile <term>Specifies:</term> <listitem> <para> - The <link linkend="filter-file">filter file</link> to use + The <link linkend="filter-file">filter file(s)</link> to use </para> </listitem> </varlistentry> @@ -406,25 +406,33 @@ actionsfile <term>Notes:</term> <listitem> <para> - The <link linkend="filter-file">filter file</link> contains content modification + Multiple <literal>filterfiles</literal> lines are permitted. + </para> + <para> + The <link linkend="filter-file">filter files</link> contain content modification rules that use <link linkend="regex">regular expressions</link>. 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 <quote>Microsoft</quote> with <quote>MicroSuck</quote> 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 + <quote>Microsoft</quote> with <quote>MicroSuck</quote> wherever it appears + on a Web page. </para> <para> The <literal>+<link linkend="filter">filter</link>{<replaceable class="parameter">name</replaceable>}</literal> actions rely on the relevant filter (<replaceable class="parameter">name</replaceable>) - to be defined in the filter file! + to be defined in a filter file! </para> <para> A pre-defined filter file called <filename>default.filter</filename> 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 <literal><link linkend="filter">filter</link></literal> action for a list. </para> + <para> + It is recommended to place any locally adapted filters into a separate + file, such as <filename>user.filter</filename>. + </para> </listitem> </varlistentry> </variablelist> 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 @@ <!entity p-authors SYSTEM "p-authors.sgml"> <!entity config SYSTEM "p-config.sgml"> <!entity p-version "3.0.4"> -<!entity p-status "BETA"> +<!entity p-status "beta"> <!entity % p-authors-formal "INCLUDE"> <!-- include additional text, etc --> <!entity % p-not-stable "INCLUDE"> <!entity % p-stable "IGNORE"> @@ -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 <developers@privoxy.org> See LICENSE. @@ -58,7 +58,7 @@ </subscript> </pubdate> -<pubdate>$Id: user-manual.sgml,v 2.14 2006/08/29 10:59:36 hal9 Exp $</pubdate> +<pubdate>$Id: user-manual.sgml,v 2.15 2006/08/30 11:15:22 hal9 Exp $</pubdate> <!-- @@ -116,10 +116,9 @@ Hal. <application>Privoxy</application>, v.&p-version;<![%p-not-stable;[, 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 <quote>soon</quote> ;-)]]>. + configuration files. Development of a new version is currently nearing + completion, and includes significant changes and enhancements over + earlier versions. ]]>. </para> <!-- include only in non-stable versions --> @@ -135,10 +134,11 @@ Hal. <!-- ~~~~~ New section ~~~~~ --> <sect2 id="features"><title>Features</title> <para> - In addition to <application>Internet Junkbuster's</application> traditional - features of ad and banner blocking and cookie management, - <application>Privoxy</application> provides new features<![%p-not-stable;[, - some of them currently under development]]>: + In addition to the core + features of ad blocking and cookie management, + <application>Privoxy</application> provides many supplemental + features<![%p-not-stable;[, some of them currently under development]]>, + that give the end-user more control, more privacy and more freedom: </para> <!-- Include newfeatures.sgml boilerplate here: --> &newfeatures; @@ -373,8 +373,9 @@ automatically start Privoxy in the boot process. <para> In order not to lose your personal changes and adjustments when updating to the latest <literal>default.action</literal> file we <emphasis>strongly - recommend</emphasis> that you use <literal>user.action</literal> for your - customization of <application>Privoxy</application>. See the <link + recommend</emphasis> that you use <literal>user.action</literal> and + <literal>user.filter</literal> for your local + customizations of <application>Privoxy</application>. See the <link linkend="actions-file">Chapter on actions files</link> for details. </para> @@ -1580,12 +1581,19 @@ must find a better place for this paragraph <sect1 id="actions-file"><title>Actions Files</title> <para> - The actions files are used to define what actions - <application>Privoxy</application> takes for which URLs, and thus determine + The actions files are used to define what <emphasis>actions</emphasis> + <application>Privoxy</application> 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 <application>Privoxy</application> - 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. +</para> +<para> + There + are three action files included with <application>Privoxy</application> with + differing purposes: </para> <para> @@ -2487,7 +2495,7 @@ new action <term>Effect:</term> <listitem> <para> - 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. </para> </listitem> </varlistentry> @@ -3336,8 +3344,10 @@ problem-host.example.com</screen> <varlistentry> <term>Effect:</term> <listitem> - <para>Extend filtering capabilities to the client's headers, which - by default applies only to the document itself. + <para> + By default, <application>Privoxy's</application> filters only apply + to the document content itself. This will extend those filters to + include the client's headers as well. </para> </listitem> </varlistentry> @@ -3434,8 +3444,10 @@ problem-host.example.com <varlistentry> <term>Effect:</term> <listitem> - <para>Extend filtering capabilities to the server's headers, which - by default applies only to the document itself. + <para> + By default, <application>Privoxy's</application> filters only apply + to the document content itself. This will extend those filters to + include the server's headers as well. </para> </listitem> </varlistentry> @@ -4349,7 +4361,7 @@ new action <term>Effect:</term> <listitem> <para> - To protect against a known exploit + Protect against a known exploit </para> </listitem> </varlistentry> @@ -4813,7 +4825,8 @@ new action <listitem> <para> 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. </para> <para> You can do the same by combining the actions @@ -5250,7 +5263,7 @@ new action <para> If you previously configured <application>Privoxy</application> 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. </para> </listitem> @@ -5500,11 +5513,15 @@ that also explains why and how aliases are used: { \ -<link linkend="ADD-HEADER">add-header</link> \ -<link linkend="BLOCK">block</link> \ + -<link linkend="CONTENT-TYPE-OVERWRITE">content-type-overwrite</link> \ + -<link linkend="CRUNCH-CLIENT-HEADER">crunch-client-header</link> \ + -<link linkend="CRUNCH-IF-NONE-MATCH">crunch-if-none-match</link> \ -<link linkend="CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</link> \ + -<link linkend="CRUNCH-SERVER-HEADER">crunch-server-header</link> \ -<link linkend="CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</link> \ +<link linkend="DEANIMATE-GIFS">deanimate-gifs</link> \ -<link linkend="DOWNGRADE-HTTP-VERSION">downgrade-http-version</link> \ - +<link linkend="FAST-REDIRECTS">fast-redirects</link> \ + +<link linkend="FAST-REDIRECTS">fast-redirects{check-decoded-url}</link> \ +<link linkend="FILTER-JS-ANNOYANCES">filter{js-annoyances}</link> \ -<link linkend="FILTER-JS-EVENTS">filter{js-events}</link> \ +<link linkend="FILTER-HTML-ANNOYANCES">filter{html-annoyances}</link> \ @@ -5525,18 +5542,29 @@ that also explains why and how aliases are used: -<link linkend="FILTER-FUN">filter{fun}</link> \ -<link linkend="FILTER-CRUDE-PARENTAL">filter{crude-parental}</link> \ +<link linkend="FILTER-IE-EXPLOITS">filter{ie-exploits}</link> \ + -<link linkend="FILTER-CLIENT-HEADERS">filter-client-headers</link> \ + -<link linkend="FILTER-SERVER-HEADERS">filter-server-headers</link> \ + -<link linkend="FORCE-TEXT-MODE">force-text-mode</link> \ + -<link linkend="HANDLE-AS-EMPTY-DOCUMENT">handle-as-empty-document</link> \ -<link linkend="HANDLE-AS-IMAGE">handle-as-image</link> \ + -<link linkend="HIDE-ACCEPT-LANGUAGE">hide-accept-language</link> \ + -<link linkend="HIDE-CONTENT-DISPOSITION">hide-content-disposition</link> \ + -<link linkend="HIDE-IF-MODIFIED-SINCE">hide-if-modified-since</link> \ +<link linkend="HIDE-FORWARDED-FOR-HEADERS">hide-forwarded-for-headers</link> \ +<link linkend="HIDE-FROM-HEADER">hide-from-header{block}</link> \ +<link linkend="HIDE-REFERER">hide-referrer{forge}</link> \ -<link linkend="HIDE-USER-AGENT">hide-user-agent</link> \ + -<link linkend="INSPECT-JPEGS">inspect-jpegs</link> \ -<link linkend="KILL-POPUPS">kill-popups</link> \ -<link linkend="LIMIT-CONNECT">limit-connect</link> \ +<link linkend="PREVENT-COMPRESSION">prevent-compression</link> \ + -<link linkend="OVERWRITE-LAST-MODIFIED">overwrite-last-modified</link> \ + -<link linkend="REDIRECT">redirect</link> \ -<link linkend="SEND-VANILLA-WAFER">send-vanilla-wafer</link> \ -<link linkend="SEND-WAFER">send-wafer</link> \ +<link linkend="SESSION-COOKIES-ONLY">session-cookies-only</link> \ +<link linkend="SET-IMAGE-BLOCKER">set-image-blocker{pattern}</link> \ + -<link linkend="TREAT-FORBIDDEN-CONNECTS-LIKE-BLOCKS">treat-forbidden-connects-like-blocks</link> \ } / # forward slash will match *all* potential URL patterns.</screen> </para> @@ -5691,7 +5719,7 @@ bs*.einets.com <para> One of the most important jobs of <application>Privoxy</application> - is to block banners. A huge bunch of them are already <quote>blocked</quote> + is to block banners. A huge bunch of them can be <quote>blocked</quote> by the <literal><link linkend="filter">filter</link>{banners-by-size}</literal> 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</screen> </para> <para> - The actual <filename>default.action</filename> is of course more + The actual <filename>default.action</filename> is of course much more comprehensive, but we hope this example made clear how it works. </para> @@ -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}</screen> +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 = -<link linkend="FILTER">filter</link> +-<link linkend="content-type-overwrite">content-type-overwrite{text/plain}</link> +-<link linkend="FORCE-TEXT-MODE">force-text-mode</link> -<link linkend="HIDE-CONTENT-DISPOSITION">hide-content-disposition</link></screen> - </para> <para> @@ -6017,6 +6048,19 @@ ar.atwola.com/</screen> <literal>-<link linkend="filter-banners-by-link">filter{banners-by-link}</link></literal> above. </para> +<para> + Invoke another alias here to force an over-ride of the MIME type <literal> + application/x-sh</literal> 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. +</para> + +<para> +<screen> +{ handle-as-text } +/.*\.sh$</screen> +</para> + <para> <filename>user.action</filename> is generally the best place to define exceptions and additions to the default policies of @@ -7386,10 +7430,10 @@ Requests</title> linkend="DEANIMATE-GIFS"><quote>+deanimate-gifs</quote></link> 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 - <filename>default.filter</filename>) 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 + <filename>default.filter</filename> 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 <application>Privoxy</application> back to your browser. </para> @@ -7469,7 +7513,8 @@ Requests</title> <para> Let's try an example, <ulink url="http://google.com">google.com</ulink>, - 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): </para> <para> @@ -7478,38 +7523,63 @@ Requests</title> In file: default.action <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibutton> -{-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 <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibut </para> <para> - This tells us how we have defined our + This is telling us how we have defined our <link linkend="ACTIONS"><quote>actions</quote></link>, and - which ones match for our example, <quote>google.com</quote>. The first listing + which ones match for our test case, <quote>google.com</quote>. + Displayed is all the actions that are available to us. Remember, + the <literal>+</literal> sign denotes <quote>on</quote>. <literal>-</literal> + denotes <quote>off</quote>. So some are <quote>on</quote> here, but many + are <quote>off</quote>. Each example we try may provide a slightly different + end result, depending on our configuration directives. +</para> +<para> + The first listing is any matches for the <filename>standard.action</filename> file. No hits at all here on <quote>standard</quote>. Then next is <quote>default</quote>, or our <filename>default.action</filename> file. The large, multi-line listing, @@ -7542,8 +7620,9 @@ In file: user.action <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibut <quote>.google.com</quote>. The first is negating our previous cookie setting, which was for <link linkend="SESSION-COOKIES-ONLY"><quote>+session-cookies-only</quote></link> - (i.e. not persistent). So we will allow persistent cookies for google. The - second turns <emphasis>off</emphasis> 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 + <emphasis>off</emphasis> any <link linkend="FAST-REDIRECTS"><quote>+fast-redirects</quote></link> action, allowing this to take place unmolested. Note that there is a leading @@ -7557,6 +7636,8 @@ In file: user.action <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibut <para> Then, for our <filename>user.action</filename> file, we again have no hits. + So there is nothing google-specific that we might have added to our own, local + configuration. </para> <para> @@ -7571,43 +7652,56 @@ In file: user.action <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibut 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} -</screen> + -session-cookies-only + +set-image-blocker {pattern} + -treat-forbidden-connects-like-blocks </screen> </para> <para> Notice the only difference here to the previous listing, is to <quote>fast-redirects</quote> and <quote>session-cookies-only</quote>, - 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 <quote>Final Results</quote>. </para> <para> @@ -7666,12 +7760,16 @@ In file: user.action <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibut In file: default.action <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibutton> {-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 <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibut +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 } @@ -7699,11 +7807,12 @@ In file: user.action <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibut </para> <para> - Ooops, the <quote>/adsl/</quote> is matching <quote>/ads</quote>! 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 <emphasis>not</emphasis> - block (<quote>{-block}</quote>) paths with <quote>adsl</quote>. There are - various ways to handle such exceptions. Example: + Ooops, the <quote>/adsl/</quote> is matching <quote>/ads</quote> 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 + <emphasis>un</emphasis> blocks (<quote>{-block}</quote>) paths with + <quote>adsl</quote> in them (remember, last match in the configuration wins). + There are various ways to handle such exceptions. Example: </para> <para> @@ -7814,6 +7923,11 @@ In file: user.action <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibut Temple Place - Suite 330, Boston, MA 02111-1307, USA. $Log: user-manual.sgml,v $ + Revision 2.15 2006/08/30 11:15:22 hal9 + More work on the new actions, especially filter-*-headers, and What's New + section. User Manual is close to final form for 3.0.4 release. Some tinkering + and proof reading left to do. + Revision 2.14 2006/08/29 10:59:36 hal9 Add a "Whats New in this release" Section. Further work on multiple filter files, and assorted other minor changes. diff --git a/doc/webserver/user-manual/actions-file.html b/doc/webserver/user-manual/actions-file.html index 844df3a3..132cdea7 100644 --- a/doc/webserver/user-manual/actions-file.html +++ b/doc/webserver/user-manual/actions-file.html @@ -77,18 +77,30 @@ NAME="ACTIONS-FILE" ></A >8. Actions Files</H1 ><P -> The actions files are used to define what actions +> The actions files are used to define what <SPAN +CLASS="emphasis" +><I +CLASS="EMPHASIS" +>actions</I +></SPAN +> <SPAN CLASS="APPLICATION" >Privoxy</SPAN -> 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 <SPAN + 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.</P +><P +> There + are three action files included with <SPAN CLASS="APPLICATION" >Privoxy</SPAN -> - with differing purposes: +> with + differing purposes: </P ><P > <P @@ -156,7 +168,7 @@ CLASS="FILENAME" > <DIV CLASS="TABLE" ><A -NAME="AEN1798" +NAME="AEN1803" ></A ><P ><B @@ -579,7 +591,7 @@ CLASS="SECT2" ><H2 CLASS="SECT2" ><A -NAME="AEN1897" +NAME="AEN1902" ></A >8.1. Finding the Right Mix</H2 ><P @@ -613,7 +625,7 @@ CLASS="SECT2" ><H2 CLASS="SECT2" ><A -NAME="AEN1904" +NAME="AEN1909" ></A >8.2. How to Edit</H2 ><P @@ -869,7 +881,7 @@ CLASS="SECT3" ><H3 CLASS="SECT3" ><A -NAME="AEN1978" +NAME="AEN1983" ></A >8.4.1. The Domain Pattern</H3 ><P @@ -1055,7 +1067,7 @@ CLASS="SECT3" ><H3 CLASS="SECT3" ><A -NAME="AEN2040" +NAME="AEN2045" ></A >8.4.2. The Path Pattern</H3 ><P @@ -1854,7 +1866,7 @@ CLASS="APPLICATION" >Effect:</DT ><DD ><P -> 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. </P ></DD ><DT @@ -3407,8 +3419,12 @@ CLASS="VARIABLELIST" >Effect:</DT ><DD ><P ->Extend filtering capabilities to the client's headers, which - by default applies only to the document itself. +> By default, <SPAN +CLASS="APPLICATION" +>Privoxy's</SPAN +> filters only apply + to the document content itself. This will extend those filters to + include the client's headers as well. </P ></DD ><DT @@ -3542,8 +3558,12 @@ CLASS="VARIABLELIST" >Effect:</DT ><DD ><P ->Extend filtering capabilities to the server's headers, which - by default applies only to the document itself. +> By default, <SPAN +CLASS="APPLICATION" +>Privoxy's</SPAN +> filters only apply + to the document content itself. This will extend those filters to + include the server's headers as well. </P ></DD ><DT @@ -4890,7 +4910,7 @@ CLASS="VARIABLELIST" >Effect:</DT ><DD ><P -> To protect against a known exploit +> Protect against a known exploit </P ></DD ><DT @@ -5565,7 +5585,8 @@ CLASS="VARIABLELIST" ><DD ><P > 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. </P ><P > You can do the same by combining the actions @@ -6310,7 +6331,7 @@ CLASS="APPLICATION" >Privoxy</SPAN > 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. </P ></DD @@ -6341,7 +6362,7 @@ CLASS="SECT3" ><H3 CLASS="SECT3" ><A -NAME="AEN3633" +NAME="AEN3640" ></A >8.5.36. Summary</H3 ><P @@ -6645,7 +6666,7 @@ CLASS="SECT3" ><H3 CLASS="SECT3" ><A -NAME="AEN3698" +NAME="AEN3705" ></A >8.7.1. default.action</H3 ><P @@ -6838,10 +6859,26 @@ HREF="actions-file.html#ADD-HEADER" -<A HREF="actions-file.html#BLOCK" >block</A +> \ + -<A +HREF="actions-file.html#CONTENT-TYPE-OVERWRITE" +>content-type-overwrite</A +> \ + -<A +HREF="actions-file.html#CRUNCH-CLIENT-HEADER" +>crunch-client-header</A +> \ + -<A +HREF="actions-file.html#CRUNCH-IF-NONE-MATCH" +>crunch-if-none-match</A > \ -<A HREF="actions-file.html#CRUNCH-INCOMING-COOKIES" >crunch-incoming-cookies</A +> \ + -<A +HREF="actions-file.html#CRUNCH-SERVER-HEADER" +>crunch-server-header</A > \ -<A HREF="actions-file.html#CRUNCH-OUTGOING-COOKIES" @@ -6857,7 +6894,7 @@ HREF="actions-file.html#DOWNGRADE-HTTP-VERSION" > \ +<A HREF="actions-file.html#FAST-REDIRECTS" ->fast-redirects</A +>fast-redirects{check-decoded-url}</A > \ +<A HREF="actions-file.html#FILTER-JS-ANNOYANCES" @@ -6940,8 +6977,36 @@ HREF="actions-file.html#FILTER-IE-EXPLOITS" >filter{ie-exploits}</A > \ -<A +HREF="actions-file.html#FILTER-CLIENT-HEADERS" +>filter-client-headers</A +> \ + -<A +HREF="actions-file.html#FILTER-SERVER-HEADERS" +>filter-server-headers</A +> \ + -<A +HREF="actions-file.html#FORCE-TEXT-MODE" +>force-text-mode</A +> \ + -<A +HREF="actions-file.html#HANDLE-AS-EMPTY-DOCUMENT" +>handle-as-empty-document</A +> \ + -<A HREF="actions-file.html#HANDLE-AS-IMAGE" >handle-as-image</A +> \ + -<A +HREF="actions-file.html#HIDE-ACCEPT-LANGUAGE" +>hide-accept-language</A +> \ + -<A +HREF="actions-file.html#HIDE-CONTENT-DISPOSITION" +>hide-content-disposition</A +> \ + -<A +HREF="actions-file.html#HIDE-IF-MODIFIED-SINCE" +>hide-if-modified-since</A > \ +<A HREF="actions-file.html#HIDE-FORWARDED-FOR-HEADERS" @@ -6958,6 +7023,10 @@ HREF="actions-file.html#HIDE-REFERER" -<A HREF="actions-file.html#HIDE-USER-AGENT" >hide-user-agent</A +> \ + -<A +HREF="actions-file.html#INSPECT-JPEGS" +>inspect-jpegs</A > \ -<A HREF="actions-file.html#KILL-POPUPS" @@ -6970,6 +7039,14 @@ HREF="actions-file.html#LIMIT-CONNECT" +<A HREF="actions-file.html#PREVENT-COMPRESSION" >prevent-compression</A +> \ + -<A +HREF="actions-file.html#OVERWRITE-LAST-MODIFIED" +>overwrite-last-modified</A +> \ + -<A +HREF="actions-file.html#REDIRECT" +>redirect</A > \ -<A HREF="actions-file.html#SEND-VANILLA-WAFER" @@ -6986,6 +7063,10 @@ HREF="actions-file.html#SESSION-COOKIES-ONLY" +<A HREF="actions-file.html#SET-IMAGE-BLOCKER" >set-image-blocker{pattern}</A +> \ + -<A +HREF="actions-file.html#TREAT-FORBIDDEN-CONNECTS-LIKE-BLOCKS" +>treat-forbidden-connects-like-blocks</A > \ } / # forward slash will match *all* potential URL patterns.</PRE @@ -7229,7 +7310,7 @@ bs*.einets.com CLASS="APPLICATION" >Privoxy</SPAN > - is to block banners. A huge bunch of them are already <SPAN + is to block banners. A huge bunch of them can be <SPAN CLASS="QUOTE" >"blocked"</SPAN > @@ -7480,7 +7561,7 @@ HREF="actions-file.html#FILTER" > The actual <TT CLASS="FILENAME" >default.action</TT -> is of course more +> is of course much more comprehensive, but we hope this example made clear how it works.</P ></DIV ><DIV @@ -7488,7 +7569,7 @@ CLASS="SECT3" ><H3 CLASS="SECT3" ><A -NAME="AEN3864" +NAME="AEN3886" ></A >8.7.2. user.action</H3 ><P @@ -7584,13 +7665,27 @@ shop = -crunch-all-cookies allow-popups # Allow ads for selected useful free sites: # -allow-ads = -block -filter{banners-by-size} -filter{banners-by-link}</PRE +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 = -<A +HREF="actions-file.html#FILTER" +>filter</A +> +-<A +HREF="actions-file.html#CONTENT-TYPE-OVERWRITE" +>content-type-overwrite{text/plain}</A +> +-<A +HREF="actions-file.html#FORCE-TEXT-MODE" +>force-text-mode</A +> -<A +HREF="actions-file.html#HIDE-CONTENT-DISPOSITION" +>hide-content-disposition</A +></PRE ></TD ></TR ></TABLE -> - - </P +> </P ><P > 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" ></TT > above.</P ><P +> Invoke another alias here to force an over-ride of the MIME type <TT +CLASS="LITERAL" +> application/x-sh</TT +> 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.</P +><P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="SCREEN" +>{ handle-as-text } +/.*\.sh$</PRE +></TD +></TR +></TABLE +> </P +><P > <TT CLASS="FILENAME" >user.action</TT diff --git a/doc/webserver/user-manual/appendix.html b/doc/webserver/user-manual/appendix.html index c4ed673a..d9aceac9 100644 --- a/doc/webserver/user-manual/appendix.html +++ b/doc/webserver/user-manual/appendix.html @@ -743,7 +743,7 @@ CLASS="SECT2" ><H2 CLASS="SECT2" ><A -NAME="AEN4640" +NAME="AEN4670" ></A >14.2. <SPAN CLASS="APPLICATION" @@ -792,7 +792,7 @@ CLASS="APPLICATION" Privoxy main page: </P ><A -NAME="AEN4655" +NAME="AEN4685" ></A ><BLOCKQUOTE CLASS="BLOCKQUOTE" @@ -825,7 +825,7 @@ CLASS="APPLICATION" editing of actions files: </P ><A -NAME="AEN4663" +NAME="AEN4693" ></A ><BLOCKQUOTE CLASS="BLOCKQUOTE" @@ -845,7 +845,7 @@ TARGET="_top" Show the source code version numbers: </P ><A -NAME="AEN4668" +NAME="AEN4698" ></A ><BLOCKQUOTE CLASS="BLOCKQUOTE" @@ -865,7 +865,7 @@ TARGET="_top" Show the browser's request headers: </P ><A -NAME="AEN4673" +NAME="AEN4703" ></A ><BLOCKQUOTE CLASS="BLOCKQUOTE" @@ -885,7 +885,7 @@ TARGET="_top" Show which actions apply to a URL and why: </P ><A -NAME="AEN4678" +NAME="AEN4708" ></A ><BLOCKQUOTE CLASS="BLOCKQUOTE" @@ -909,7 +909,7 @@ CLASS="QUOTE" to run, but only as a pass-through proxy, with no actions taking place: </P ><A -NAME="AEN4684" +NAME="AEN4714" ></A ><BLOCKQUOTE CLASS="BLOCKQUOTE" @@ -926,7 +926,7 @@ TARGET="_top" > Short cuts. Turn off, then on: </P ><A -NAME="AEN4688" +NAME="AEN4718" ></A ><BLOCKQUOTE CLASS="BLOCKQUOTE" @@ -940,7 +940,7 @@ TARGET="_top" </P ></BLOCKQUOTE ><A -NAME="AEN4691" +NAME="AEN4721" ></A ><BLOCKQUOTE CLASS="BLOCKQUOTE" @@ -1243,10 +1243,10 @@ CLASS="QUOTE" <TT CLASS="FILENAME" >default.filter</TT ->) 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 <SPAN CLASS="APPLICATION" @@ -1390,7 +1390,8 @@ HREF="http://google.com" TARGET="_top" >google.com</A >, - and look at it one section at a time:</P + and look at it one section at a time in a sample configuration (your real + configuration may vary):</P ><P > <TABLE BORDER="0" @@ -1410,38 +1411,63 @@ CLASS="GUIBUTTON" >[ Edit ]</SPAN > -{-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" ></TABLE ></P ><P -> This tells us how we have defined our +> This is telling us how we have defined our <A HREF="actions-file.html#ACTIONS" ><SPAN @@ -1469,10 +1495,35 @@ CLASS="QUOTE" >"actions"</SPAN ></A >, and - which ones match for our example, <SPAN + which ones match for our test case, <SPAN CLASS="QUOTE" >"google.com"</SPAN ->. The first listing +>. + Displayed is all the actions that are available to us. Remember, + the <TT +CLASS="LITERAL" +>+</TT +> sign denotes <SPAN +CLASS="QUOTE" +>"on"</SPAN +>. <TT +CLASS="LITERAL" +>-</TT +> + denotes <SPAN +CLASS="QUOTE" +>"off"</SPAN +>. So some are <SPAN +CLASS="QUOTE" +>"on"</SPAN +> here, but many + are <SPAN +CLASS="QUOTE" +>"off"</SPAN +>. Each example we try may provide a slightly different + end result, depending on our configuration directives.</P +><P +> The first listing is any matches for the <TT CLASS="FILENAME" >standard.action</TT @@ -1517,8 +1568,9 @@ CLASS="QUOTE" >"+session-cookies-only"</SPAN ></A > - (i.e. not persistent). So we will allow persistent cookies for google. The - second turns <SPAN + (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 + <SPAN CLASS="emphasis" ><I CLASS="EMPHASIS" @@ -1555,7 +1607,9 @@ CLASS="QUOTE" > Then, for our <TT CLASS="FILENAME" >user.action</TT -> file, we again have no hits.</P +> file, we again have no hits. + So there is nothing google-specific that we might have added to our own, local + configuration.</P ><P > And finally we pull it all together in the bottom section and summarize how <SPAN @@ -1580,36 +1634,49 @@ WIDTH="100%" CLASS="SCREEN" > 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} </PRE + -session-cookies-only + +set-image-blocker {pattern} + -treat-forbidden-connects-like-blocks </PRE ></TD ></TR ></TABLE @@ -1623,7 +1690,11 @@ CLASS="QUOTE" CLASS="QUOTE" >"session-cookies-only"</SPAN >, - which are actived specifically for this site in our configuration.</P + which are actived specifically for this site in our configuration, + and thus show in the <SPAN +CLASS="QUOTE" +>"Final Results"</SPAN +>.</P ><P > Now another example, <SPAN CLASS="QUOTE" @@ -1730,12 +1801,16 @@ CLASS="GUIBUTTON" > {-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 <SPAN CLASS="QUOTE" >"/ads"</SPAN ->! 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 <SPAN +> 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 + <SPAN CLASS="emphasis" ><I CLASS="EMPHASIS" ->not</I +>un</I ></SPAN -> - block (<SPAN +> blocks (<SPAN CLASS="QUOTE" >"{-block}"</SPAN ->) paths with <SPAN +>) paths with + <SPAN CLASS="QUOTE" >"adsl"</SPAN ->. There are - various ways to handle such exceptions. Example:</P +> in them (remember, last match in the configuration wins). + There are various ways to handle such exceptions. Example:</P ><P > <TABLE BORDER="0" diff --git a/doc/webserver/user-manual/config.html b/doc/webserver/user-manual/config.html index c48743b8..a25a8948 100644 --- a/doc/webserver/user-manual/config.html +++ b/doc/webserver/user-manual/config.html @@ -465,7 +465,7 @@ CLASS="VARIABLELIST" ><P > The <A HREF="filter-file.html" ->filter file</A +>filter file(s)</A > to use </P ></DD @@ -514,24 +514,31 @@ CLASS="REPLACEABLE" >Notes:</DT ><DD ><P +> Multiple <TT +CLASS="LITERAL" +>filterfiles</TT +> lines are permitted. + </P +><P > The <A HREF="filter-file.html" ->filter file</A -> contains content modification +>filter files</A +> contain content modification rules that use <A HREF="appendix.html#REGEX" >regular expressions</A >. 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 <SPAN + 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 + <SPAN CLASS="QUOTE" >"Microsoft"</SPAN > with <SPAN CLASS="QUOTE" >"MicroSuck"</SPAN -> wherever - it appears on a Web page. +> wherever it appears + on a Web page. </P ><P > The @@ -553,14 +560,14 @@ CLASS="REPLACEABLE" >name</I ></TT >) - to be defined in the filter file! + to be defined in a filter file! </P ><P > A pre-defined filter file called <TT CLASS="FILENAME" >default.filter</TT > 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 <TT CLASS="LITERAL" ><A @@ -570,6 +577,13 @@ HREF="actions-file.html#FILTER" > action for a list. </P +><P +> It is recommended to place any locally adapted filters into a separate + file, such as <TT +CLASS="FILENAME" +>user.filter</TT +>. + </P ></DD ></DL ></DIV diff --git a/doc/webserver/user-manual/configuration.html b/doc/webserver/user-manual/configuration.html index b6d00e3b..192d1974 100644 --- a/doc/webserver/user-manual/configuration.html +++ b/doc/webserver/user-manual/configuration.html @@ -96,7 +96,7 @@ CLASS="SECT2" ><H2 CLASS="SECT2" ><A -NAME="AEN725" +NAME="AEN724" ></A >6.1. Controlling <SPAN CLASS="APPLICATION" @@ -130,7 +130,7 @@ CLASS="SCREEN" > <H2 CLASS="BRIDGEHEAD" ><A -NAME="AEN734" +NAME="AEN733" ></A > Privoxy Menu</H2 ><P diff --git a/doc/webserver/user-manual/copyright.html b/doc/webserver/user-manual/copyright.html index 12cc36a7..294d62cd 100644 --- a/doc/webserver/user-manual/copyright.html +++ b/doc/webserver/user-manual/copyright.html @@ -100,7 +100,7 @@ CLASS="SECT2" ><H2 CLASS="SECT2" ><A -NAME="AEN4394" +NAME="AEN4424" ></A >12.1. License</H2 ><P diff --git a/doc/webserver/user-manual/filter-file.html b/doc/webserver/user-manual/filter-file.html index 6a1b5201..4cdd83ae 100644 --- a/doc/webserver/user-manual/filter-file.html +++ b/doc/webserver/user-manual/filter-file.html @@ -303,7 +303,7 @@ CLASS="SECT2" ><H2 CLASS="SECT2" ><A -NAME="AEN3994" +NAME="AEN4024" ></A >9.1. Filter File Tutorial</H2 ><P diff --git a/doc/webserver/user-manual/index.html b/doc/webserver/user-manual/index.html index d60408ca..7f6c942b 100644 --- a/doc/webserver/user-manual/index.html +++ b/doc/webserver/user-manual/index.html @@ -45,7 +45,7 @@ TARGET="_top" ><BR></P ><P CLASS="PUBDATE" ->$Id: user-manual.sgml,v 2.14 2006/08/29 10:59:36 hal9 Exp $<BR></P +>$Id: user-manual.sgml,v 2.15 2006/08/30 11:15:22 hal9 Exp $<BR></P ><DIV ><DIV CLASS="ABSTRACT" @@ -73,7 +73,7 @@ CLASS="APPLICATION" CLASS="APPLICATION" >Privoxy</SPAN > 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. <SPAN CLASS="APPLICATION" @@ -308,7 +308,7 @@ CLASS="APPLICATION" ><DL ><DT >6.1. <A -HREF="configuration.html#AEN725" +HREF="configuration.html#AEN724" >Controlling <SPAN CLASS="APPLICATION" >Privoxy</SPAN @@ -499,12 +499,12 @@ HREF="actions-file.html" ><DL ><DT >8.1. <A -HREF="actions-file.html#AEN1897" +HREF="actions-file.html#AEN1902" >Finding the Right Mix</A ></DT ><DT >8.2. <A -HREF="actions-file.html#AEN1904" +HREF="actions-file.html#AEN1909" >How to Edit</A ></DT ><DT @@ -521,12 +521,12 @@ HREF="actions-file.html#AF-PATTERNS" ><DL ><DT >8.4.1. <A -HREF="actions-file.html#AEN1978" +HREF="actions-file.html#AEN1983" >The Domain Pattern</A ></DT ><DT >8.4.2. <A -HREF="actions-file.html#AEN2040" +HREF="actions-file.html#AEN2045" >The Path Pattern</A ></DT ></DL @@ -718,7 +718,7 @@ HREF="actions-file.html#TREAT-FORBIDDEN-CONNECTS-LIKE-BLOCKS" ></DT ><DT >8.5.36. <A -HREF="actions-file.html#AEN3633" +HREF="actions-file.html#AEN3640" >Summary</A ></DT ></DL @@ -737,12 +737,12 @@ HREF="actions-file.html#ACT-EXAMPLES" ><DL ><DT >8.7.1. <A -HREF="actions-file.html#AEN3698" +HREF="actions-file.html#AEN3705" >default.action</A ></DT ><DT >8.7.2. <A -HREF="actions-file.html#AEN3864" +HREF="actions-file.html#AEN3886" >user.action</A ></DT ></DL @@ -758,7 +758,7 @@ HREF="filter-file.html" ><DL ><DT >9.1. <A -HREF="filter-file.html#AEN3994" +HREF="filter-file.html#AEN4024" >Filter File Tutorial</A ></DT ><DT @@ -829,7 +829,7 @@ CLASS="APPLICATION" ><DL ><DT >12.1. <A -HREF="copyright.html#AEN4394" +HREF="copyright.html#AEN4424" >License</A ></DT ><DT @@ -863,7 +863,7 @@ HREF="appendix.html#REGEX" ></DT ><DT >14.2. <A -HREF="appendix.html#AEN4640" +HREF="appendix.html#AEN4670" ><SPAN CLASS="APPLICATION" >Privoxy</SPAN diff --git a/doc/webserver/user-manual/installation.html b/doc/webserver/user-manual/installation.html index 9982796a..34b4d0af 100644 --- a/doc/webserver/user-manual/installation.html +++ b/doc/webserver/user-manual/installation.html @@ -856,8 +856,12 @@ CLASS="EMPHASIS" > that you use <TT CLASS="LITERAL" >user.action</TT -> for your - customization of <SPAN +> and + <TT +CLASS="LITERAL" +>user.filter</TT +> for your local + customizations of <SPAN CLASS="APPLICATION" >Privoxy</SPAN >. See the <A diff --git a/doc/webserver/user-manual/introduction.html b/doc/webserver/user-manual/introduction.html index 842014ac..43f0ea33 100644 --- a/doc/webserver/user-manual/introduction.html +++ b/doc/webserver/user-manual/introduction.html @@ -77,22 +77,18 @@ NAME="INTRODUCTION" ></A >1. Introduction</H1 ><P -> This documentation is included with the current BETA version of +> This documentation is included with the current beta version of <SPAN CLASS="APPLICATION" >Privoxy</SPAN >, 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 <SPAN -CLASS="QUOTE" ->"soon"</SPAN -> ;-).</P + configuration files. Development of a new version is currently nearing + completion, and includes significant changes and enhancements over + earlier versions. .</P ><P -> 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 <SPAN CLASS="emphasis" @@ -111,16 +107,14 @@ NAME="FEATURES" ></A >1.1. Features</H2 ><P -> In addition to <SPAN -CLASS="APPLICATION" ->Internet Junkbuster's</SPAN -> traditional - features of ad and banner blocking and cookie management, +> In addition to the core + features of ad blocking and cookie management, <SPAN CLASS="APPLICATION" >Privoxy</SPAN -> provides new features, - some of them currently under development:</P +> provides many supplemental + features, some of them currently under development, + that give the end-user more control, more privacy and more freedom:</P ><P > <P ></P diff --git a/doc/webserver/user-manual/quickstart.html b/doc/webserver/user-manual/quickstart.html index 27997139..afd2f6e9 100644 --- a/doc/webserver/user-manual/quickstart.html +++ b/doc/webserver/user-manual/quickstart.html @@ -632,7 +632,7 @@ CLASS="GUIBUTTON" > <DIV CLASS="FIGURE" ><A -NAME="AEN521" +NAME="AEN520" ></A ><P ><B diff --git a/doc/webserver/user-manual/startup.html b/doc/webserver/user-manual/startup.html index ee85acd9..99db75c6 100644 --- a/doc/webserver/user-manual/startup.html +++ b/doc/webserver/user-manual/startup.html @@ -101,7 +101,7 @@ CLASS="APPLICATION" > <DIV CLASS="FIGURE" ><A -NAME="AEN572" +NAME="AEN571" ></A ><P ><B