X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=doc%2Fwebserver%2Fuser-manual%2Factions-file.html;h=1e2b7341a426936c2e8265fbd3c97c2e9de39be0;hp=79744ea43efc3d0141900cd5da216ed9230b37f8;hb=873efe14859c0fb3f53a905eb346c36cf5fe7eda;hpb=6de6bda5b29cbb5a8aef6863c1b5ca999ab4887b diff --git a/doc/webserver/user-manual/actions-file.html b/doc/webserver/user-manual/actions-file.html index 79744ea4..1e2b7341 100644 --- a/doc/webserver/user-manual/actions-file.html +++ b/doc/webserver/user-manual/actions-file.html @@ -3,104 +3,77 @@ Actions Files - - - + + + - + - +
-

8. Actions - Files

-

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 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. Actions can be combined so that their effects are - aggregated when applied against a given set of URLs.

-

There are three action files included with Privoxy with differing purposes:

+

8. Actions Files

+

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 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. Actions can be combined so that their effects are aggregated when applied against a given set of + URLs.

+

There are three action files included with Privoxy with differing purposes:

+
+

8.5.29. https-inspection

+
+
+
Typical use:
+
+

Filter encrypted requests and responses

+
+
Effect:
+
+

Encrypted requests are decrypted, filtered and forwarded encrypted.

+
+
Type:
+
+

Boolean.

+
+
Parameter:
+
+

N/A

+
+
Notes:
+
+

This action allows Privoxy to filter encrypted requests and + responses. For this to work Privoxy has to generate a certificate and + send it to the client which has to accept it.

+

Before this works the directives in the HTTPS inspection section of the config + file have to be configured.

+

Note that the action has to be enabled based on the CONNECT request which doesn't contain a path. + Enabling it based on a pattern with path doesn't work as the path is only seen by Privoxy if the action is already enabled.

+

This is an experimental feature.

+
+
Example usage (section):
+
+ + +
+
{+https-inspection}
+www.example.com
@@ -2968,19 +2631,64 @@ nasty-banner-server.example.com/junk.cgi\?output=trash
-

8.5.27. - limit-connect

+

8.5.30. + ignore-certificate-errors

Typical use:
-

Prevent abuse of Privoxy as - a TCP proxy relay or disable SSL for untrusted sites

+

Filter encrypted requests and responses without verifying the certificate

Effect:
-

Specifies to which ports HTTP CONNECT requests are - allowable.

+

Encrypted requests are forwarded to sites without verifying the certificate.

+
+
Type:
+
+

Boolean.

+
+
Parameter:
+
+

N/A

+
+
Notes:
+
+

When the "+https-inspection" action is used Privoxy by default + verifies that the remote site uses a valid certificate.

+

If the certificate can't be validated by Privoxy the connection is + aborted.

+

This action disables the certificate check so requests to sites with certificates that can't be + validated are allowed.

+

Note that enabling this action allows Man-in-the-middle attacks.

+
+
Example usage:
+
+ + + + +
+
    {+ignore-certificate-errors}
+    www.example.org
+   
+
+
+
+
+
+
+

8.5.31. limit-connect

+
+
+
Typical use:
+
+

Prevent abuse of Privoxy as a TCP proxy relay or disable SSL for + untrusted sites

+
+
Effect:
+
+

Specifies to which ports HTTP CONNECT requests are allowable.

Type:
@@ -2988,38 +2696,28 @@ nasty-banner-server.example.com/junk.cgi\?output=trash
Parameter:
-

A comma-separated list of ports or port ranges (the latter - using dashes, with the minimum defaulting to 0 and the maximum - to 65K).

+

A comma-separated list of ports or port ranges (the latter using dashes, with the minimum defaulting + to 0 and the maximum to 65K).

Notes:
-

By default, i.e. if no limit-connect action applies, Privoxy allows HTTP CONNECT requests to - all ports. Use limit-connect if - fine-grained control is desired for some or all - destinations.

-

The CONNECT methods exists in HTTP to allow access to secure - websites ("https://" URLs) through - proxies. It works very simply: the proxy connects to the server - on the specified port, and then short-circuits its connections - to the client and to the remote server. This means - CONNECT-enabled proxies can be used as TCP relays very - easily.

-

Privoxy relays HTTPS - traffic without seeing the decoded content. Websites can - leverage this limitation to circumvent Privoxy's filters. By specifying an - invalid port range you can disable HTTPS entirely.

+

By default, i.e. if no limit-connect action applies, Privoxy allows HTTP CONNECT requests to all ports. Use limit-connect if fine-grained control is desired for some or all destinations.

+

The CONNECT methods exists in HTTP to allow access to secure websites ("https://" URLs) through proxies. It works very simply: the proxy connects to the server + on the specified port, and then short-circuits its connections to the client and to the remote server. + This means CONNECT-enabled proxies can be used as TCP relays very easily.

+

Privoxy relays HTTPS traffic without seeing the decoded content. + Websites can leverage this limitation to circumvent Privoxy's filters. + By specifying an invalid port range you can disable HTTPS entirely.

Example usages:
-
-                    +limit-connect{443}                   # Port 443 is OK.
+                    
+limit-connect{443}                   # Port 443 is OK.
 +limit-connect{80,443}                # Ports 80 and 443 are OK.
 +limit-connect{-3, 7, 20-100, 500-}   # Ports less than 3, 7, 20 to 100 and above 500 are OK.
 +limit-connect{-}                     # All ports are OK
@@ -3032,19 +2730,17 @@ nasty-banner-server.example.com/junk.cgi\?output=trash
-

8.5.28. limit-cookie-lifetime

+

8.5.32. + limit-cookie-lifetime

Typical use:
-

Limit the lifetime of HTTP cookies to a couple of minutes or - hours.

+

Limit the lifetime of HTTP cookies to a couple of minutes or hours.

Effect:
-

Overwrites the expires field in Set-Cookie server headers if - it's above the specified limit.

+

Overwrites the expires field in Set-Cookie server headers if it's above the specified limit.

Type:
@@ -3056,36 +2752,28 @@ nasty-banner-server.example.com/junk.cgi\?output=trash
Notes:
-

This action reduces the lifetime of HTTP cookies coming from - the server to the specified number of minutes, starting from - the time the cookie passes Privoxy.

-

Cookies with a lifetime below the limit are not modified. - The lifetime of session cookies is set to the specified - limit.

+

This action reduces the lifetime of HTTP cookies coming from the server to the specified number of + minutes, starting from the time the cookie passes Privoxy.

+

Cookies with a lifetime below the limit are not modified. The lifetime of session cookies is set to + the specified limit.

The effect of this action depends on the server.

-

In case of servers which refresh their cookies with each - response (or at least frequently), the lifetime limit set by - this action is updated as well. Thus, a session associated with - the cookie continues to work with this action enabled, as long - as a new request is made before the last limit set is +

In case of servers which refresh their cookies with each response (or at least frequently), the + lifetime limit set by this action is updated as well. Thus, a session associated with the cookie + continues to work with this action enabled, as long as a new request is made before the last limit set is reached.

-

However, some servers send their cookies once, with a - lifetime of several years (the year 2037 is a popular choice), - and do not refresh them until a certain event in the future, - for example the user logging out. In this case this action may - limit the absolute lifetime of the session, even if requests +

However, some servers send their cookies once, with a lifetime of several years (the year 2037 is a + popular choice), and do not refresh them until a certain event in the future, for example the user + logging out. In this case this action may limit the absolute lifetime of the session, even if requests are made frequently.

-

If the parameter is "0", this - action behaves like session-cookies-only.

+

If the parameter is "0", this action behaves like session-cookies-only.

Example usages:
-
+limit-cookie-lifetime{60}
-       
+
+limit-cookie-lifetime{60}
@@ -3094,20 +2782,17 @@ nasty-banner-server.example.com/junk.cgi\?output=trash
-

8.5.29. prevent-compression

+

8.5.33. prevent-compression

Typical use:
-

Ensure that servers send the content uncompressed, so it can - be passed through filters.

+

Ensure that servers send the content uncompressed, so it can be passed through filters.

Effect:
-

Removes the Accept-Encoding header which can be used to ask - for compressed transfer.

+

Removes the Accept-Encoding header which can be used to ask for compressed transfer.

Type:
@@ -3119,43 +2804,32 @@ nasty-banner-server.example.com/junk.cgi\?output=trash
Notes:
-

More and more websites send their content compressed by - default, which is generally a good idea and saves bandwidth. - But the filter and deanimate-gifs - actions need access to the uncompressed data.

-

When compiled with zlib support (available since - Privoxy 3.0.7), content that - should be filtered is decompressed on-the-fly and you don't - have to worry about this action. If you are using an older - Privoxy version, or one that - hasn't been compiled with zlib support, this action can be used - to convince the server to send the content uncompressed.

-

Most text-based instances compress very well, the size is - seldom decreased by less than 50%, for markup-heavy instances - like news feeds saving more than 90% of the original size isn't - unusual.

-

Not using compression will therefore slow down the transfer, - and you should only enable this action if you really need it. - As of Privoxy 3.0.7 it's - disabled in all predefined action settings.

-

Note that some (rare) ill-configured sites don't handle - requests for uncompressed documents correctly. Broken PHP - applications tend to send an empty document body, some IIS - versions only send the beginning of the content. If you enable - prevent-compression per default, you - might want to add exceptions for those sites. See the example - for how to do that.

+

More and more websites send their content compressed by default, which is generally a good idea and + saves bandwidth. But the filter and + deanimate-gifs actions need + access to the uncompressed data.

+

When compiled with zlib support (available since Privoxy 3.0.7), + content that should be filtered is decompressed on-the-fly and you don't have to worry about this action. + If you are using an older Privoxy version, or one that hasn't been + compiled with zlib support, this action can be used to convince the server to send the content + uncompressed.

+

Most text-based instances compress very well, the size is seldom decreased by less than 50%, for + markup-heavy instances like news feeds saving more than 90% of the original size isn't unusual.

+

Not using compression will therefore slow down the transfer, and you should only enable this action if + you really need it. As of Privoxy 3.0.7 it's disabled in all predefined + action settings.

+

Note that some (rare) ill-configured sites don't handle requests for uncompressed documents correctly. + Broken PHP applications tend to send an empty document body, some IIS versions only send the beginning of + the content and some content delivery networks let the connection time out. If you enable prevent-compression per default, you might want to add exceptions for those sites. See the + example for how to do that.

Example usage (sections):
-
-                    # Selectively turn off compression, and enable a filter
+                    
# Selectively turn off compression, and enable a filter
 #
 { +filter{tiny-textforms} +prevent-compression }
 # Match only these sites
@@ -3180,19 +2854,17 @@ nasty-banner-server.example.com/junk.cgi\?output=trash
-

8.5.30. overwrite-last-modified

+

8.5.34. + overwrite-last-modified

Typical use:
-

Prevent yet another way to track the user's steps between - sessions.

+

Prevent yet another way to track the user's steps between sessions.

Effect:
-

Deletes the "Last-Modified:" HTTP - server header or modifies its value.

+

Deletes the "Last-Modified:" HTTP server header or modifies its value.

Type:
@@ -3200,44 +2872,30 @@ nasty-banner-server.example.com/junk.cgi\?output=trash
Parameter:
-

One of the keywords: "block", - "reset-to-request-time" and - "randomize"

+

One of the keywords: "block", "reset-to-request-time" and "randomize"

Notes:
-

Removing the "Last-Modified:" - header is useful for filter testing, where you want to force a - real reload instead of getting status code "304", which would cause the browser to reuse - the old version of the page.

-

The "randomize" option overwrites - the value of the "Last-Modified:" - header with a randomly chosen time between the original value - and the current time. In theory the server could send each - document with a different "Last-Modified:" header to track visits without - using cookies. "Randomize" makes it - impossible and the browser can still revalidate cached - documents.

-

"reset-to-request-time" - overwrites the value of the "Last-Modified:" header with the current time. - You could use this option together with hide-if-modified-since - to further customize your random range.

-

The preferred parameter here is "randomize". It is safe to use, as long as the - time settings are more or less correct. If the server sets the - "Last-Modified:" header to the time - of the request, the random range becomes zero and the value - stays the same. Therefore you should later randomize it a - second time with hided-if-modified-since, - just to be sure.

-

It is also recommended to use this action together with - Removing the "Last-Modified:" header is useful for filter testing, where + you want to force a real reload instead of getting status code "304", which + would cause the browser to reuse the old version of the page.

+

The "randomize" option overwrites the value of the "Last-Modified:" header with a randomly chosen time between the original value and the + current time. In theory the server could send each document with a different "Last-Modified:" header to track visits without using cookies. "Randomize" makes it impossible and the browser can still revalidate cached documents.

+

"reset-to-request-time" overwrites the value of the "Last-Modified:" header with the current time. You could use this option together with + hide-if-modified-since to + further customize your random range.

+

The preferred parameter here is "randomize". It is safe to use, as long as + the time settings are more or less correct. If the server sets the "Last-Modified:" header to the time of the request, the random range becomes zero and the + value stays the same. Therefore you should later randomize it a second time with hided-if-modified-since, just to be + sure.

+

It is also recommended to use this action together with crunch-if-none-match.

Example usage:
@@ -3245,8 +2903,7 @@ nasty-banner-server.example.com/junk.cgi\?output=trash
-
-                    # Let the browser revalidate without being tracked across sessions
+                    
# Let the browser revalidate without being tracked across sessions
 { +hide-if-modified-since{-60} \
  +overwrite-last-modified{randomize} \
  +crunch-if-none-match}
@@ -3259,8 +2916,7 @@ nasty-banner-server.example.com/junk.cgi\?output=trash
-

8.5.31. - redirect

+

8.5.35. redirect

Typical use:
@@ -3269,9 +2925,8 @@ nasty-banner-server.example.com/junk.cgi\?output=trash
Effect:
-

Convinces the browser that the requested document has been - moved to another location and the browser should get it from - there.

+

Convinces the browser that the requested document has been moved to another location and the browser + should get it from there.

Type:
@@ -3283,41 +2938,34 @@ nasty-banner-server.example.com/junk.cgi\?output=trash
Notes:
-

Requests to which this action applies are answered with a - HTTP redirect to URLs of your choosing. The new URL is either - provided as parameter, or derived by applying a single pcrs - command to the original URL.

-

The syntax for pcrs commands is documented in the filter file section.

-

Requests can't be blocked and redirected at the same time, - applying this action together with block is a configuration - error. Currently the request is blocked and an error message - logged, the behavior may change in the future and result in +

Requests to which this action applies are answered with a HTTP redirect to URLs of your choosing. The + new URL is either provided as parameter, or derived by applying a single pcrs command to the original + URL.

+

The syntax for pcrs commands is documented in the filter file + section.

+

Requests can't be blocked and redirected at the same time, applying this action together with + block is a configuration error. Currently + the request is blocked and an error message logged, the behavior may change in the future and result in Privoxy rejecting the action file.

-

This action can be combined with fast-redirects{check-decoded-url} - to redirect to a decoded version of a rewritten URL.

-

Use this action carefully, make sure not to create - redirection loops and be aware that using your own redirects - might make it possible to fingerprint your requests.

-

In case of problems with your redirects, or simply to watch - them working, enable debug - 128.

+

This action can be combined with fast-redirects{check-decoded-url} to redirect to a decoded + version of a rewritten URL.

+

Use this action carefully, make sure not to create redirection loops and be aware that using your own + redirects might make it possible to fingerprint your requests.

+

In case of problems with your redirects, or simply to watch them working, enable debug 128.

Example usages:
-
-                    # Replace example.com's style sheet with another one
+                    
# Replace example.com's style sheet with another one
 { +redirect{http://localhost/css-replacements/example.com.css} }
  example.com/stylesheet\.css
 
 # Create a short, easy to remember nickname for a favorite site
-# (relies on the browser to accept and forward invalid URLs to Privoxy)
+# (relies on the browser to accept and forward invalid URLs to Privoxy)
 { +redirect{https://www.privoxy.org/user-manual/actions-file.html} }
  a
 
@@ -3348,6 +2996,10 @@ example.com/.*toChange=(?!bar)
 # Redirect Destination = https://www.illumos.org/issues/4974
 i[0-9][0-9][0-9][0-9]*/
 
+# Redirect requests for the old Tor Hidden Service of the Privoxy website to the new one
+{+redirect{s@^http://jvauzb4sb3bwlsnc.onion/@http://l3tczdiiwoo63iwxty4lhs6p7eaxop5micbn7vbliydgv63x5zrrrfyd.onion/@}}
+jvauzb4sb3bwlsnc.onion/
+
 # Redirect remote requests for this manual
 # to the local version delivered by Privoxy
 {+redirect{s@^http://www@http://config@}}
@@ -3360,8 +3012,8 @@ www.privoxy.org/user-manual/
-

8.5.32. server-header-filter

+

8.5.36. + server-header-filter

Typical use:
@@ -3370,9 +3022,8 @@ www.privoxy.org/user-manual/
Effect:
-

All server headers to which this action applies are filtered - on-the-fly through the specified regular expression based - substitutions.

+

All server headers to which this action applies are filtered on-the-fly through the specified regular + expression based substitutions.

Type:
@@ -3380,21 +3031,18 @@ www.privoxy.org/user-manual/
Parameter:
-

The name of a server-header filter, as defined in one of the - filter files.

+

The name of a server-header filter, as defined in one of the filter + files.

Notes:
-

Server-header filters are applied to each header on its own, - not to all at once. This makes it easier to diagnose problems, - but on the downside you can't write filters that only change - header x if header y's value is z. You can do that by using - tags though.

-

Server-header filters are executed after the other header - actions have finished and use their output as input.

-

Please refer to the filter file - chapter to learn which server-header filters are available - by default, and how to create your own.

+

Server-header filters are applied to each header on its own, not to all at once. This makes it easier + to diagnose problems, but on the downside you can't write filters that only change header x if header y's + value is z. You can do that by using tags though.

+

Server-header filters are executed after the other header actions have finished and use their output + as input.

+

Please refer to the filter file chapter to learn which server-header + filters are available by default, and how to create your own.

Example usage (section):
@@ -3405,8 +3053,7 @@ www.privoxy.org/user-manual/ example.org/xml-instance-that-is-delivered-as-html {+server-header-filter{xml-to-html}} -example.org/instance-that-is-delivered-as-xml-but-is-not - +example.org/instance-that-is-delivered-as-xml-but-is-not
@@ -3415,20 +3062,18 @@ example.org/instance-that-is-delivered-as-xml-but-is-not
-

8.5.33. server-header-tagger

+

8.5.37. + server-header-tagger

Typical use:
-

Enable or disable filters based on the Content-Type - header.

+

Enable or disable filters based on the Content-Type header.

Effect:
-

Server headers to which this action applies are filtered - on-the-fly through the specified regular expression based - substitutions, the result is used as tag.

+

Server headers to which this action applies are filtered on-the-fly through the specified regular + expression based substitutions, the result is used as tag.

Type:
@@ -3436,31 +3081,26 @@ example.org/instance-that-is-delivered-as-xml-but-is-not
Parameter:
-

The name of a server-header tagger, as defined in one of the - filter files.

+

The name of a server-header tagger, as defined in one of the filter + files.

Notes:
-

Server-header taggers are applied to each header on its own, - and as the header isn't modified, each tagger "sees" the original.

-

Server-header taggers are executed before all other header - actions that modify server headers. Their tags can be used to - control all of the other server-header actions, the content - filters and the crunch actions (redirect and Server-header taggers are applied to each header on its own, and as the header isn't modified, each + tagger "sees" the original.

+

Server-header taggers are executed before all other header actions that modify server headers. Their + tags can be used to control all of the other server-header actions, the content filters and the crunch + actions (redirect and block).

-

Obviously crunching based on tags created by server-header - taggers doesn't prevent the request from showing up in the - server's log file.

+

Obviously crunching based on tags created by server-header taggers doesn't prevent the request from + showing up in the server's log file.

Example usage (section):
-
-                    # Tag every request with the content type declared by the server
+                    
# Tag every request with the content type declared by the server
 {+server-header-tagger{content-type}}
 /
 
@@ -3468,11 +3108,9 @@ example.org/instance-that-is-delivered-as-xml-but-is-not
 # filter that only applies to images.
 #
 # Note that the filter is not available by default, it's just a
-# silly example.
+# silly example.
 {+external-filter{rotate-image} +force-text-mode}
-TAG:^image/
-    
+TAG:^image/
@@ -3481,22 +3119,58 @@ TAG:^image/
-

8.5.34. session-cookies-only

+

8.5.38. suppress-tag

Typical use:
-

Allow only temporary "session" - cookies (for the current browser session only).

+

Suppress client or server tag.

Effect:
-

Deletes the "expires" field from - "Set-Cookie:" server headers. Most - browsers will not store such cookies permanently and forget - them in between sessions.

+

Server or client tags to which this action applies are not added to the request, thus making all + actions that are specific to these request tags inactive.

+
+
Type:
+
+

Multi-value.

+
+
Parameter:
+
+

The result tag of a server-header or client-header tagger, as defined in one of the filter files.

+
+
Example usage (section):
+
+ + + + +
+
# Suppress tag produced by range-requests client-header tagger for requests coming from address 10.0.0.1
+{+suppress-tag{RANGE-REQUEST}}
+TAG:^IP-ADDRESS: 10\.0\.0\.1$
+
+
+
+
+
+
+

8.5.39. + session-cookies-only

+
+
+
Typical use:
+
+

Allow only temporary "session" cookies (for the current browser session + only).

+
+
Effect:
+
+

Deletes the "expires" field from "Set-Cookie:" + server headers. Most browsers will not store such cookies permanently and forget them in between + sessions.

Type:
@@ -3509,41 +3183,27 @@ TAG:^image/
Notes:

This is less strict than crunch-incoming-cookies - / crunch-outgoing-cookies - and allows you to browse websites that insist or rely on - setting cookies, without compromising your privacy too + "actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies / crunch-outgoing-cookies and allows + you to browse websites that insist or rely on setting cookies, without compromising your privacy too badly.

-

Most browsers will not permanently store cookies that have - been processed by session-cookies-only - and will forget about them between sessions. This makes - profiling cookies useless, but won't break sites which require - cookies so that you can log in for transactions. This is - generally turned on for all sites, and is the recommended - setting.

-

It makes no sense - at all to use session-cookies-only together with crunch-incoming-cookies - or crunch-outgoing-cookies. - If you do, cookies will be plainly killed.

-

Note that it is up to the browser how it handles such - cookies without an "expires" field. - If you use an exotic browser, you might want to try it out to - be sure.

-

This setting also has no effect on cookies that may have - been stored previously by the browser before starting - Privoxy. These would have to - be removed manually.

-

Privoxy also uses the - content-cookies - filter to block some types of cookies. Content cookies are - not effected by session-cookies-only.

+

Most browsers will not permanently store cookies that have been processed by session-cookies-only and will forget about them between sessions. This makes profiling + cookies useless, but won't break sites which require cookies so that you can log in for transactions. + This is generally turned on for all sites, and is the recommended setting.

+

It makes no sense at all to use session-cookies-only together with crunch-incoming-cookies or crunch-outgoing-cookies. If you + do, cookies will be plainly killed.

+

Note that it is up to the browser how it handles such cookies without an "expires" field. If you use an exotic browser, you might want to try it out to be + sure.

+

This setting also has no effect on cookies that may have been stored previously by the browser before + starting Privoxy. These would have to be removed manually.

+

Privoxy also uses the content-cookies filter to block some types of cookies. + Content cookies are not effected by session-cookies-only.

Example usage:
@@ -3559,8 +3219,7 @@ TAG:^image/
-

8.5.35. set-image-blocker

+

8.5.40. set-image-blocker

Typical use:
@@ -3569,18 +3228,13 @@ TAG:^image/
Effect:
-

This action alone doesn't do anything noticeable. If - both - block and handle-as-image - also - apply, i.e. if the request is to be blocked as an image, - then the - parameter of this action decides what will be sent as a - replacement.

+

This action alone doesn't do anything noticeable. If both block + and handle-as-image also apply, i.e. if the request is to be blocked as an image, then the parameter of this action decides what will be sent as + a replacement.

Type:
@@ -3590,55 +3244,38 @@ TAG:^image/
  • -

    "pattern" to send a built-in - checkerboard pattern image. The image is visually decent, - scales very well, and makes it obvious where banners were - busted.

    +

    "pattern" to send a built-in checkerboard pattern image. The image is + visually decent, scales very well, and makes it obvious where banners were busted.

  • -

    "blank" to send a built-in - transparent image. This makes banners disappear completely, - but makes it hard to detect where Privoxy has blocked images on a given - page and complicates troubleshooting if Privoxy has blocked innocent images, - like navigation icons.

    +

    "blank" to send a built-in transparent image. This makes banners + disappear completely, but makes it hard to detect where Privoxy has + blocked images on a given page and complicates troubleshooting if Privoxy has blocked innocent images, like navigation icons.

  • -

    "target-url" to send a - redirect to target-url. - You can redirect to any image anywhere, even in your local - filesystem via "file:///" URL. - (But note that not all browsers support redirecting to a - local file system).

    -

    A good application of redirects is to use special - Privoxy-built-in URLs, - which send the built-in images, as target-url. This has the same - visual effect as specifying "blank" or "pattern" in the first place, but enables - your browser to cache the replacement image, instead of - requesting it over and over again.

    +

    "target-url" to send a redirect to + target-url. You can redirect to any image anywhere, even in your + local filesystem via "file:///" URL. (But note that not all browsers + support redirecting to a local file system).

    +

    A good application of redirects is to use special Privoxy-built-in URLs, which send the built-in images, as target-url. This has the same visual effect as specifying "blank" or "pattern" in the first place, but enables your + browser to cache the replacement image, instead of requesting it over and over again.

Notes:

The URLs for the built-in images are "http://config.privoxy.org/send-banner?type=type", where type is either "blank" or "pattern".

-

There is a third (advanced) type, called "auto". It is NOT to be used in set-image-blocker, but meant for use from - filters. Auto will select the - type of image that would have applied to the referring page, - had it been an image.

+ "QUOTE">"http://config.privoxy.org/send-banner?type=type", + where type is either "blank" or + "pattern".

+

There is a third (advanced) type, called "auto". It is NOT to be used in set-image-blocker, + but meant for use from filters. Auto will select the type of image that + would have applied to the referring page, had it been an image.

Example usage:
@@ -3654,8 +3291,7 @@ TAG:^image/
-
-                    +set-image-blocker{http://www.freebsd.org/gifs/dae_up3.gif}
+
+set-image-blocker{http://www.freebsd.org/gifs/dae_up3.gif}
@@ -3663,8 +3299,7 @@ TAG:^image/
-
-                    +set-image-blocker{http://config.privoxy.org/send-banner?type=pattern}
+
+set-image-blocker{http://config.privoxy.org/send-banner?type=pattern}
@@ -3673,54 +3308,38 @@ TAG:^image/
-

8.5.36. - Summary

-

Note that many of these actions have the potential to cause a page - to misbehave, possibly even not to display at all. There are many - ways a site designer may choose to design his site, and what HTTP - header content, and other criteria, he may depend on. There is no way - to have hard and fast rules for all sites. See the Appendix for a brief example on - troubleshooting actions.

+

8.5.41. Summary

+

Note that many of these actions have the potential to cause a page to misbehave, possibly even not to + display at all. There are many ways a site designer may choose to design his site, and what HTTP header + content, and other criteria, he may depend on. There is no way to have hard and fast rules for all sites. See + the Appendix for a brief example on troubleshooting actions.

8.6. Aliases

-

Custom "actions", known to Privoxy as "aliases", - can be defined by combining other actions. These can in turn be invoked - just like the built-in actions. Currently, an alias name can contain - any character except space, tab, "=", - "{" and "}", but - we strongly - recommend that you only use "a" - to "z", "0" to - "9", "+", and - "-". Alias names are not case sensitive, and - are not required to start with a "+" or - "-" sign, since they are merely textually - expanded.

-

Aliases can be used throughout the actions file, but they - must be defined in a special - section at the top of the file! And there can only be one - such section per actions file. Each actions file may have its own alias - section, and the aliases defined in it are only visible within that - file.

-

There are two main reasons to use aliases: One is to save typing for - frequently used combinations of actions, the other one is a gain in - flexibility: If you decide once how you want to handle shops by - defining an alias called "shop", you can - later change your policy on shops in one place, and your changes will take effect - everywhere in the actions file where the "shop" alias is used. Calling aliases by their purpose - also makes your actions files more readable.

-

Currently, there is one big drawback to using aliases, though: - Privoxy's built-in web-based action - file editor honors aliases when reading the actions files, but it - expands them before writing. So the effects of your aliases are of - course preserved, but the aliases themselves are lost when you edit - sections that use aliases with it.

+

Custom "actions", known to Privoxy as "aliases", can be defined by combining other actions. These can in turn be invoked just like the + built-in actions. Currently, an alias name can contain any character except space, tab, "=", "{" and "}", but we strongly recommend that you only use "a" to + "z", "0" to "9", "+", and "-". Alias names are not case sensitive, and are not required + to start with a "+" or "-" sign, since they are merely + textually expanded.

+

Aliases can be used throughout the actions file, but they must be + defined in a special section at the top of the file! And there can only be one such section per + actions file. Each actions file may have its own alias section, and the aliases defined in it are only visible + within that file.

+

There are two main reasons to use aliases: One is to save typing for frequently used combinations of actions, + the other one is a gain in flexibility: If you decide once how you want to handle shops by defining an alias + called "shop", you can later change your policy on shops in one place, and your changes will take effect everywhere in the actions + file where the "shop" alias is used. Calling aliases by their purpose also makes your + actions files more readable.

+

Currently, there is one big drawback to using aliases, though: Privoxy's + built-in web-based action file editor honors aliases when reading the actions files, but it expands them before + writing. So the effects of your aliases are of course preserved, but the aliases themselves are lost when you + edit sections that use aliases with it.

Now let's define some aliases...

@@ -3735,10 +3354,10 @@ TAG:^image/ # These aliases just save typing later: # (Note that some already use other aliases!) # - +crunch-all-cookies = +crunch-incoming-cookies +crunch-outgoing-cookies - -crunch-all-cookies = -crunch-incoming-cookies -crunch-outgoing-cookies + +crunch-all-cookies = +crunch-incoming-cookies +crunch-outgoing-cookies + -crunch-all-cookies = -crunch-incoming-cookies -crunch-outgoing-cookies +block-as-image = +block{Blocked image.} +handle-as-image allow-all-cookies = -crunch-all-cookies -session-cookies-only -hide-referrer -prevent-compression - shop = -crunch-all-cookies -filter{all-popups} + shop = -crunch-all-cookies -filter{all-popups} # Short names for other aliases, for really lazy people ;-) # @@ -3763,15 +3381,12 @@ TAG:^image/
-

...and put them to use. These sections would appear in the lower - part of an actions file and define exceptions to the default actions - (as specified further up for the "/" - pattern):

+

...and put them to use. These sections would appear in the lower part of an actions file and define exceptions + to the default actions (as specified further up for the "/" pattern):

-
-            # These sites are either very complex or very keen on
+            
 # These sites are either very complex or very keen on
  # user data and require minimal interference to work:
  #
  {fragile}
@@ -3796,84 +3411,60 @@ TAG:^image/
           
-

Aliases like "shop" and "fragile" are typically used for "problem" sites that require more than one action to be - disabled in order to function properly.

+

Aliases like "shop" and "fragile" are typically used for + "problem" sites that require more than one action to be disabled in order to function + properly.

-

8.7. Actions - Files Tutorial

-

The above chapters have shown which - actions files there are and how they are organized, how actions are - specified and applied to URLs, how patterns work, and how to define - and use aliases. Now, let's - look at an example match-all.action, - default.action and user.action file and see how all these pieces come - together:

+

8.7. Actions Files Tutorial

+

The above chapters have shown which actions files there are and how they are + organized, how actions are specified and applied to URLs, how patterns + work, and how to define and use aliases. Now, let's look at an example + match-all.action, default.action and user.action file and see how all these pieces come together:

-

8.7.1. - match-all.action

-

Remember all actions - are disabled when matching starts, so we have to - explicitly enable the ones we want.

-

While the match-all.action file only - contains a single section, it is probably the most important one. It - has only one pattern, "/", but this pattern matches all URLs. Therefore, the - set of actions used in this "default" - section will be applied to - all requests as a start. It can be partly or wholly - overridden by other actions files like default.action and user.action, but it will still be largely responsible - for your overall browsing experience.

-

Again, at the start of matching, all actions are disabled, so - there is no need to disable any actions here. (Remember: a - "+" preceding the action name enables the - action, a "-" disables!). Also note how - this long line has been made more readable by splitting it into +

8.7.1. match-all.action

+

Remember all actions are disabled when matching + starts, so we have to explicitly enable the ones we want.

+

While the match-all.action file only contains a single section, it is probably the + most important one. It has only one pattern, "/", but this + pattern matches all URLs. Therefore, the set of actions used in + this "default" section will be applied to + all requests as a start. It can be partly or wholly overridden by other actions files like + default.action and user.action, but it will still be + largely responsible for your overall browsing experience.

+

Again, at the start of matching, all actions are disabled, so there is no need to disable any actions here. + (Remember: a "+" preceding the action name enables the action, a "-" disables!). Also note how this long line has been made more readable by splitting it into multiple lines with line continuation.

{ \
- +change-x-forwarded-for{block} \
+ +change-x-forwarded-for{block} \
  +hide-from-header{block} \
- +set-image-blocker{pattern} \
+ +set-image-blocker{pattern} \
 }
-/ # Match all URLs
- 
+/ # Match all URLs

The default behavior is now set.

-

8.7.2. - default.action

-

If you aren't a developer, there's no need for you to edit the - default.action file. It is maintained by - the Privoxy developers and if you - disagree with some of the sections, you should overrule them in your - user.action.

-

Understanding the default.action file - can help you with your user.action, - though.

-

The first section in this file is a special section for internal - use that prevents older Privoxy - versions from reading the file:

+

8.7.2. default.action

+

If you aren't a developer, there's no need for you to edit the default.action + file. It is maintained by the Privoxy developers and if you disagree with some + of the sections, you should overrule them in your user.action.

+

Understanding the default.action file can help you with your user.action, though.

+

The first section in this file is a special section for internal use that prevents older Privoxy versions from reading the file:

-
-              ##########################################################################
+              
##########################################################################
 # Settings -- Don't change! For internal Privoxy use ONLY.
 ##########################################################################
 {{settings}}
@@ -3881,15 +3472,12 @@ for-privoxy-version=3.0.11
-

After that comes the (optional) alias section. We'll use the - example section from the above chapter on aliases, that also - explains why and how aliases are used:

+

After that comes the (optional) alias section. We'll use the example section from the above chapter on aliases, that also explains why and how aliases are used:

-
-              ##########################################################################
+              
##########################################################################
 # Aliases
 ##########################################################################
 {{alias}}
@@ -3897,10 +3485,10 @@ for-privoxy-version=3.0.11
# These aliases just save typing later: # (Note that some already use other aliases!) # - +crunch-all-cookies = +crunch-incoming-cookies +crunch-outgoing-cookies - -crunch-all-cookies = -crunch-incoming-cookies -crunch-outgoing-cookies + +crunch-all-cookies = +crunch-incoming-cookies +crunch-outgoing-cookies + -crunch-all-cookies = -crunch-incoming-cookies -crunch-outgoing-cookies +block-as-image = +block{Blocked image.} +handle-as-image mercy-for-cookies = -crunch-all-cookies -session-cookies-only - # fragile = -block -filter -crunch-all-cookies -fast-redirects -hide-referrer - shop = -crunch-all-cookies -filter{all-popups}
+"actions-file.html#FAST-REDIRECTS">fast-redirects -hide-referrer + shop = -crunch-all-cookies -filter{all-popups}
-

The first of our specialized sections is concerned with - "fragile" sites, i.e. sites that require - minimum interference, because they are either very complex or very - keen on tracking you (and have mechanisms in place that make them - unusable for people who avoid being tracked). We will simply use our - pre-defined fragile alias instead of stating - the list of actions explicitly:

+

The first of our specialized sections is concerned with "fragile" sites, i.e. + sites that require minimum interference, because they are either very complex or very keen on tracking you (and + have mechanisms in place that make them unusable for people who avoid being tracked). We will use our + pre-defined fragile alias instead of stating the list of actions explicitly:

-
-              ##########################################################################
+              
##########################################################################
 # Exceptions for sites that'll break under the default action set:
 ##########################################################################
 
@@ -3942,9 +3524,8 @@ mail.google.com
-

Shopping sites are not as fragile, but they typically require - cookies to log in, and pop-up windows for shopping carts or item - details. Again, we'll use a pre-defined alias:

+

Shopping sites are not as fragile, but they typically require cookies to log in, and pop-up windows for + shopping carts or item details. Again, we'll use a pre-defined alias:

@@ -3958,16 +3539,13 @@ mail.google.com
-

The fast-redirects action, - which may have been enabled in match-all.action, breaks some sites. So disable it - for popular sites where we know it misbehaves:

+

The fast-redirects action, which may + have been enabled in match-all.action, breaks some sites. So disable it for popular + sites where we know it misbehaves:

-
{ -fast-redirects }
+              
{ -fast-redirects }
 login.yahoo.com
 edit.*.yahoo.com
 .google.com
@@ -3977,22 +3555,17 @@ edit.*.yahoo.com
             
-

It is important that Privoxy - knows which URLs belong to images, so that if they are to be blocked, - a substitute image can be sent, rather than an HTML page. Contacting - the remote site to find out is not an option, since it would destroy - the loading time advantage of banner blocking, and it would feed the - advertisers information about you. We can mark any URL as an image - with the handle-as-image action, - and marking all URLs that end in a known image file extension is a - good start:

+

It is important that Privoxy knows which URLs belong to images, so that + if they are to be blocked, a substitute image can be + sent, rather than an HTML page. Contacting the remote site to find out is not an option, since it would destroy + the loading time advantage of banner blocking, and it would feed the advertisers information about you. We can + mark any URL as an image with the handle-as-image action, and marking all URLs that end in a known + image file extension is a good start:

-
-              ##########################################################################
+              
##########################################################################
 # Images:
 ##########################################################################
 
@@ -4004,21 +3577,17 @@ edit.*.yahoo.com
             
-

And then there are known banner sources. They often use scripts to - generate the banners, so it won't be visible from the URL that the - request is for an image. Hence we block them and mark them as images in - one go, with the help of our +block-as-image - alias defined above. (We could of course just as well use And then there are known banner sources. They often use scripts to generate the banners, so it won't be + visible from the URL that the request is for an image. Hence we block them and mark them as images in one go, with the help of our +block-as-image alias defined above. (We could of course just as well use +block +handle-as-image here.) - Remember that the type of the replacement image is chosen by the - set-image-blocker - action. Since all URLs have matched the default section with its - +set-image-blocker{pattern} - action before, it still applies and needn't be repeated:

+ "actions-file.html#HANDLE-AS-IMAGE">handle-as-image here.) Remember that the type of the replacement + image is chosen by the set-image-blocker action. Since all URLs have matched the + default section with its +set-image-blocker{pattern} action before, it still applies and + needn't be repeated:

@@ -4035,27 +3604,20 @@ bs*.gsanet.com
-

One of the most important jobs of Privoxy is to block banners. Many of these 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 them anymore, and hence they don't need to be blocked here. - But this naturally doesn't catch all banners, and some people choose - not to use filters, so we need a comprehensive list of patterns for - banner URLs here, and apply the block action to them.

-

First comes many generic patterns, which do most of the work, by - matching typical domain and path name components of banners. Then - comes a list of individual patterns for specific sites, which is - omitted here to keep the example short:

+

One of the most important jobs of Privoxy is to block banners. Many of + these 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 them + anymore, and hence they don't need to be blocked here. But this naturally doesn't catch all banners, and some + people choose not to use filters, so we need a comprehensive list of patterns for banner URLs here, and apply + the block action to them.

+

First comes many generic patterns, which do most of the work, by matching typical domain and path name + components of banners. Then comes a list of individual patterns for specific sites, which is omitted here to + keep the example short:

-
-              ##########################################################################
+              
##########################################################################
 # Block these fine banners:
 ##########################################################################
 { +block{Banner ads.} }
@@ -4075,41 +3637,28 @@ count*.
             
-

It's quite remarkable how many advertisers actually call their - banner servers ads.company.com, - or call the directory in which the banners are stored simply - "banners". So the above generic patterns - are surprisingly effective.

-

But being very generic, they necessarily also catch URLs that we - don't want to block. The pattern .*ads. e.g. - catches "nasty-ads.nasty-corp.com" as intended, but - also "downloads.sourcefroge.net" or "adsl.some-provider.net." So here come - some well-known exceptions to the +block section above.

-

Note that these are exceptions to exceptions from the default! - Consider the URL "downloads.sourcefroge.net": Initially, all actions - are deactivated, so it wouldn't get blocked. Then comes the defaults - section, which matches the URL, but just deactivates the block action - once again. Then it matches .*ads., an - exception to the general non-blocking policy, and suddenly +block applies. - And now, it'll match .*loads., where - -block - applies, so (unless it matches again further down) it ends up with no - block - action applying.

+

It's quite remarkable how many advertisers actually call their banner servers ads.company.com, or call the directory in which the banners are stored literally + "banners". So the above generic patterns are surprisingly effective.

+

But being very generic, they necessarily also catch URLs that we don't want to block. The pattern .*ads. e.g. catches "nasty-ads.nasty-corp.com" as intended, but also "downloads.sourcefroge.net" or "adsl.some-provider.net." So here come some well-known + exceptions to the +block section above.

+

Note that these are exceptions to exceptions from the default! Consider the URL "downloads.sourcefroge.net": Initially, all actions are deactivated, so it wouldn't get blocked. + Then comes the defaults section, which matches the URL, but just deactivates the block action once again. Then it matches .*ads., an + exception to the general non-blocking policy, and suddenly +block applies. And now, it'll match .*loads., + where -block applies, so (unless it matches + again further down) it ends up with no block action applying.

-
-              ##########################################################################
+              
##########################################################################
 # Save some innocent victims of the above generic block patterns:
 ##########################################################################
 
@@ -4134,11 +3683,9 @@ www.ugu.com/sui/ugu/adv
-

Filtering source code can have nasty side effects, so make an - exception for our friends at sourceforge.net, and all paths with - "cvs" in them. Note that -filter - disables all +

Filtering source code can have nasty side effects, so make an exception for our friends at sourceforge.net, + and all paths with "cvs" in them. Note that -filter disables all filters in one fell swoop!

@@ -4154,46 +3701,35 @@ wiki.
-

The actual default.action is of course - much more comprehensive, but we hope this example made clear how it - works.

+

The actual default.action is of course much more comprehensive, but we hope this + example made clear how it works.

-

8.7.3. - user.action

-

So far we are painting with a broad brush by setting general - policies, which would be a reasonable starting point for many people. - Now, you might want to be more specific and have customized rules - that are more suitable to your personal habits and preferences. These - would be for narrowly defined situations like your ISP or your bank, - and should be placed in user.action, which - is parsed after all other actions files and hence has the last word, - over-riding any previously defined actions. user.action is also a safe place for your - personal settings, since default.action is - actively maintained by the Privoxy - developers and you'll probably want to install updated versions from - time to time.

-

So let's look at a few examples of things that one might typically - do in user.action:

+

8.7.3. user.action

+

So far we are painting with a broad brush by setting general policies, which would be a reasonable starting + point for many people. Now, you might want to be more specific and have customized rules that are more suitable + to your personal habits and preferences. These would be for narrowly defined situations like your ISP or your + bank, and should be placed in user.action, which is parsed after all other actions + files and hence has the last word, over-riding any previously defined actions. user.action is also a safe place for your + personal settings, since default.action is actively maintained by the Privoxy developers and you'll probably want to install updated versions from time to + time.

+

So let's look at a few examples of things that one might typically do in user.action:

-
-              # My user.action file. <fred@example.com>
+
# My user.action file. <fred@example.com>
-

As aliases are local to - the actions file that they are defined in, you can't use the ones - from default.action, unless you repeat them - here:

+

As aliases are local to the actions file that they are defined in, + you can't use the ones from default.action, unless you repeat them here:

-
-              # Aliases are local to the file they are defined in.
+              
# Aliases are local to the file they are defined in.
 # (Re-)define aliases for this file:
 #
 {{alias}}
@@ -4221,16 +3757,16 @@ 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
+"actions-file.html#CONTENT-TYPE-OVERWRITE">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 to - allow persistent cookies for these sites. The allow-all-cookies alias defined above does exactly - that, i.e. it disables crunching of cookies in any direction, and the - processing of cookies to make them only temporary.

+

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 to allow persistent cookies for these sites. The allow-all-cookies alias defined above does exactly that, i.e. it disables crunching of cookies + in any direction, and the processing of cookies to make them only temporary.

@@ -4242,24 +3778,20 @@ handle-as-text = -filter +-
-

Your bank is allergic to some filter, but you don't know which, so - you disable them all:

+

Your bank is allergic to some filter, but you don't know which, so you disable them all:

-
{ -filter }
+              
{ -filter }
  .your-home-banking-site.com
-

Some file types you may not want to filter for various - reasons:

+

Some file types you may not want to filter for various reasons:

-
-              # Technical documentation is likely to contain strings that might
+              
# Technical documentation is likely to contain strings that might
 # erroneously get altered by the JavaScript-oriented filters:
 #
 .tldp.org
@@ -4272,34 +3804,27 @@ stupid-server.example.com/
-

Example of a simple block - action. Say you've seen an ad on your favourite page on example.com - that you want to get rid of. You have right-clicked the image, - selected "copy image location" and pasted - the URL below while removing the leading http://, into a { +block{} } section. Note that { - +handle-as-image } need not be specified, since all URLs ending - in .gif will be tagged as images by the +

Example of a simple block action. Say you've seen an ad on your + favourite page on example.com that you want to get rid of. You have right-clicked the image, selected + "copy image location" and pasted the URL below while removing the leading http://, + into a { +block{} } section. Note that { +handle-as-image } + need not be specified, since all URLs ending in .gif will be tagged as images by the general rules as set in default.action anyway:

-
{ +block{Nasty ads.} }
+              
{ +block{Nasty ads.} }
  www.example.com/nasty-ads/sponsor\.gif
  another.example.net/more/junk/here/
-

The URLs of dynamically generated banners, especially from large - banner farms, often don't use the well-known image file name - extensions, which makes it impossible for Privoxy to guess the file type just by looking - at the URL. You can use the +block-as-image - alias defined above for these cases. Note that objects which match - this rule but then turn out NOT to be an image are typically rendered - as a "broken image" icon by the browser. - Use cautiously.

+

The URLs of dynamically generated banners, especially from large banner farms, often don't use the + well-known image file name extensions, which makes it impossible for Privoxy + to guess the file type just by looking at the URL. You can use the +block-as-image + alias defined above for these cases. Note that objects which match this rule but then turn out NOT to be an + image are typically rendered as a "broken image" icon by the browser. Use + cautiously.

@@ -4311,17 +3836,13 @@ stupid-server.example.com/
-

Now you noticed that the default configuration breaks Forbes - Magazine, but you were too lazy to find out which action is the - culprit, and you were again too lazy to give feedback, so you just used the fragile alias on the site, and -- whoa! -- it worked. The - fragile aliases disables those actions that - are most likely to break a site. Also, good for testing purposes to - see if it is Privoxy that is causing - the problem or not. We later find other regular sites that misbehave, - and add those to our personalized list of troublemakers:

+

Now you noticed that the default configuration breaks Forbes Magazine, but you were too lazy to find out + which action is the culprit, and you were again too lazy to give feedback, so you + just used the fragile alias on the site, and -- whoa! -- it worked. The fragile aliases disables those actions + that are most likely to break a site. Also, good for testing purposes to see if it is Privoxy that is causing the problem or not. We later find other regular sites that + misbehave, and add those to our personalized list of troublemakers:

@@ -4332,29 +3853,24 @@ stupid-server.example.com/
-

You like the "fun" text replacements in - default.filter, but it is disabled in the - distributed actions file. So you'd like to turn it on in your - private, update-safe config, once and for all:

+

You like the "fun" text replacements in default.filter, + but it is disabled in the distributed actions file. So you'd like to turn it on in your private, update-safe + config, once and for all:

-
{ +filter{fun} }
+              
{ +filter{fun} }
  / # For ALL sites!
-

Note that the above is not really a good idea: There are - exceptions to the filters in default.action - for things that really shouldn't be filtered, like code on - CVS->Web interfaces. Since user.action - has the last word, these exceptions won't be valid for the - "fun" filtering specified here.

-

You might also worry about how your favourite free websites are - funded, and find that they rely on displaying banner advertisements - to survive. So you might want to specifically allow banners for those - sites that you feel provide value to you:

+

Note that the above is not really a good idea: There are exceptions to the filters in default.action for things that really shouldn't be filtered, like code on CVS->Web + interfaces. Since user.action has the last word, these exceptions won't be valid for + the "fun" filtering specified here.

+

You might also worry about how your favourite free websites are funded, and find that they rely on + displaying banner advertisements to survive. So you might want to specifically allow banners for those sites + that you feel provide value to you:

@@ -4365,18 +3881,13 @@ stupid-server.example.com/
-

Note that allow-ads has been aliased to - -block, -filter{banners-by-size}, - and -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.

+

Note that allow-ads has been aliased to -block, -filter{banners-by-size}, and -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.

@@ -4385,19 +3896,15 @@ stupid-server.example.com/
-

user.action is generally the best place - to define exceptions and additions to the default policies of - default.action. Some actions are safe to - have their default policies set here though. So let's set a default - policy to have a "blank" image as opposed - to the checkerboard pattern for ALL sites. "/" of - course matches all URL paths and patterns:

+

user.action is generally the best place to define exceptions and additions to the + default policies of default.action. Some actions are safe to have their default + policies set here though. So let's set a default policy to have a "blank" image as + opposed to the checkerboard pattern for ALL sites. + "/" of course matches all URL paths and patterns:

@@ -4407,19 +3914,14 @@ stupid-server.example.com/
-
{ +set-image-blocker{blank} }
+              
{ +set-image-blocker{blank} }
 / # ALL sites
+
- - - + + + - +
PrevHomeNextPrevHomeNext
The Main Configuration - FileThe Main Configuration File   Filter Files