- <varlistentry>
- <term>Notes:</term>
- <listitem>
- <para>
- Use this action for servers that use HTTP/1.1 protocol features that
- <application>Privoxy</application> doesn't handle well yet. HTTP/1.1 is
- only partially implemented. Default is not to downgrade requests. This is
- an infrequently needed action, and is used to help with rare problem sites only.
- </para>
- </listitem>
- </varlistentry>
-
-</variablelist>
-</sect3>
-
-<!-- ~~~~~ New section ~~~~~ -->
-<sect3 renderas="sect4" id="fast-redirects">
-<title><emphasis>+fast-redirects</emphasis></title>
-
-<variablelist>
- <varlistentry>
- <term>Type:</term>
- <!-- boolean, parameterized, Multi-value -->
- <listitem>
- <para>Boolean.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Typical uses:</term>
- <listitem>
- <para>
- The <quote>+fast-redirects</quote> action enables interception of
- <quote>redirect</quote> requests from one server to another, which
- are used to track users.<application>Privoxy</application> can cut off
- all but the last valid URL in a redirect request and send a local redirect
- back to your browser without contacting the intermediate site(s).
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Possible values:</term>
- <listitem>
- <para>
- N/A
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Example usage:</term>
- <listitem>
- <literallayout>
- <emphasis>{+fast-redirects}</emphasis>
- <emphasis>.example.com</emphasis>
- </literallayout>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Notes:</term>
- <listitem>
- <para>
- Many sites, like yahoo.com, don't just link to other sites. Instead, they
- will link to some script on their own server, giving the destination as a
- parameter, which will then redirect you to the final target. URLs
- resulting from this scheme typically look like:
- <emphasis>http://some.place/some_script?http://some.where-else</emphasis>.
- </para>
- <para>
- Sometimes, there are even multiple consecutive redirects encoded in the
- URL. These redirections via scripts make your web browsing more traceable,
- since the server from which you follow such a link can see where you go
- to. Apart from that, valuable bandwidth and time is wasted, while your
- browser ask the server for one redirect after the other. Plus, it feeds
- the advertisers.
- </para>
- <para>
- This is a normally <quote>on</quote> feature, and often requires exceptions
- for sites that are sensitive to defeating this mechanism.
- </para>
- </listitem>
- </varlistentry>
-
-</variablelist>
-</sect3>
-
-
-<!-- ~~~~~ New section ~~~~~ -->
-<sect3 renderas="sect4" id="filter">
-<title><emphasis>+filter</emphasis></title>
-
-<variablelist>
- <varlistentry>
- <term>Type:</term>
- <!-- boolean, parameterized, Multi-value -->
- <listitem>
- <para>Parameterized.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Typical uses:</term>
- <listitem>
- <para>
- Apply page filtering as defined by named sections of the
- <filename>default.filter</filename> file to the specified site(s).
- <quote>Filtering</quote> can be any modification of the raw
- page content, including re-writing or deletion of content.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Possible values:</term>
- <listitem>
- <para>
- <quote>+filter</quote> must include the name of one of the section identifiers
- from <filename>default.filter</filename> (or whatever
- <emphasis>filterfile</emphasis> is specified in <filename>config</filename>).
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Example usage (from the current <filename>default.filter</filename>):</term>
- <listitem>
- <simplelist>
- <member>
- <anchor id="filter-html-annoyances">
- <emphasis>+filter{html-annoyances}</emphasis>: Get rid of particularly annoying HTML abuse.
- </member>
- </simplelist>
- <simplelist>
- <member>
- <anchor id="filter-js-annoyances">
- <emphasis>+filter{js-annoyances}</emphasis>: Get rid of particularly annoying JavaScript abuse
- </member>
- </simplelist>
- <simplelist>
- <member>
- <anchor id="filter-content-cookies">
- <emphasis>+filter{content-cookies}</emphasis>: Kill cookies that come in the HTML or JS content
- </member>
- </simplelist>
- <simplelist>
- <member>
- <anchor id="filter-popups">
- <emphasis>+filter{popups}</emphasis>: Kill all popups in JS and HTML
- </member>
- </simplelist>
- <simplelist>
- <member>
- <anchor id="filter-frameset-borders">
- <emphasis>+filter{frameset-borders}</emphasis>: Give frames a border and make them resizable
- </member>
- </simplelist>
- <simplelist>
- <member>
- <anchor id="filter-webbugs">
- <emphasis>+filter{webbugs}</emphasis>: Squish WebBugs (1x1 invisible GIFs used for user tracking)
- </member>
- </simplelist>
- <simplelist>
- <member>
- <anchor id="filter-refresh-tags">
- <emphasis>+filter{refresh-tags}</emphasis>: Kill automatic refresh tags (for dial-on-demand setups)
- </member>
- </simplelist>
- <simplelist>
- <member>
- <anchor id="filter-fun">
- <emphasis>+filter{fun}</emphasis>: Text replacements for subversive browsing fun!
- </member>
- </simplelist>
- <simplelist>
- <member>
- <anchor id="filter-nimda">
- <emphasis>+filter{nimda}</emphasis>: Remove Nimda (virus) code.
- </member>
- </simplelist>
- <simplelist>
- <member>
- <anchor id="filter-banners-by-size">
- <emphasis>+filter{banners-by-size}</emphasis>: Kill banners by size (<emphasis>very</emphasis> efficient!)
- </member>
- </simplelist>
- <simplelist>
- <member>
- <anchor id="filter-shockwave-flash">
- <emphasis>+filter{shockwave-flash}</emphasis>: Kill embedded Shockwave Flash objects
- </member>
- </simplelist>
- <simplelist>
- <member>
- <anchor id="filter-crude-parental">
- <emphasis>+filter{crude-parental}</emphasis>: Kill all web pages that contain the words "sex" or "warez"
- </member>
- </simplelist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Notes:</term>
- <listitem>
- <para>
- This is potentially a very powerful feature! And requires a knowledge
- of regular expressions if you want to <quote>roll your own</quote>.
- Filtering operates on a line by line basis throughout the entire page.
- </para>
- <para>
- Filtering requires buffering the page content, which may appear to
- slow down page rendering since nothing is displayed until all content has
- passed the filters. (It does not really take longer, but seems that way
- since the page is not incrementally displayed.) This effect will be more
- noticeable on slower connections.
- </para>
- <para>
- Filtering can achieve some of the effects as the
- <ulink url="actions-file#BLOCK"><quote>+block</quote></ulink>
- action, i.e. it can be used to block ads and banners. In the overall
- scheme of things, filtering is one of the first things <quote>Privoxy</quote>
- does with a web page. So other most other actions are applied to the
- already <quote>filtered</quote> page.
- </para>
- </listitem>
- </varlistentry>
-
-</variablelist>
-</sect3>
-
-
-<!-- ~~~~~ New section ~~~~~ -->
-<sect3 renderas="sect4" id="hide-forwarded-for-headers">
-<title><emphasis>+hide-forwarded-for-headers</emphasis></title>
-
-<variablelist>
- <varlistentry>
- <term>Type:</term>
- <!-- Boolean, Parameterized, Multi-value -->
- <listitem>
- <para>Boolean.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Typical uses:</term>
- <listitem>
- <para>
- Block any existing X-Forwarded-for HTTP header, and do not add a new one.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Possible values:</term>
- <listitem>
- <para>
- N/A
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Example usage:</term>
- <listitem>
- <literallayout>
- <emphasis>{+hide-forwarded-for-headers}</emphasis>
- <emphasis>.example.com</emphasis>
- </literallayout>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Notes:</term>
- <listitem>
- <para>
- It is fairly safe to leave this on. It does not seem to break many sites.
- </para>
- </listitem>
- </varlistentry>
-
-</variablelist>
-</sect3>
-
-
-<!-- ~~~~~ New section ~~~~~ -->
-<sect3 renderas="sect4" id="hide-from-header">
-<title><emphasis>+hide-from-header</emphasis></title>
-
-<variablelist>
- <varlistentry>
- <term>Type:</term>
- <!-- Boolean, Parameterized, Multi-value -->
- <listitem>
- <para>Parameterized.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Typical uses:</term>
- <listitem>
- <para>
- To block the browser from sending your email address in a <quote>From:</quote>
- header.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Possible values:</term>
- <listitem>
- <para>
- Keyword: <quote>block</quote>, or any user defined value.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Example usage:</term>
- <listitem>
- <literallayout>
- <emphasis>{+hide-from-header{block}}</emphasis>
- <emphasis>.example.com</emphasis>
- </literallayout>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Notes:</term>
- <listitem>
- <para>
- The keyword <quote>block</quote> will completely remove the header
- (not to be confused with the <ulink
- url="actions-file.html#BLOCK"><quote>+block</quote></ulink> action).
- Alternately, you can specify any value you prefer to send to the web
- server.
- </para>
- </listitem>
- </varlistentry>
-
-</variablelist>
-</sect3>
-
-
-<!-- ~~~~~ New section ~~~~~ -->
-<sect3 renderas="sect4" id="hide-referer">
-<title><emphasis>+hide-referer</emphasis></title>
-<anchor id="hide-referrer">
-<variablelist>
- <varlistentry>
- <term>Type:</term>
- <!-- Boolean, Parameterized, Multi-value -->
- <listitem>
- <para>Parameterized.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Typical uses:</term>
- <listitem>
- <para>
- Don't send the <quote>Referer:</quote> (sic) HTTP header to the web site.
- Or, alternately send a forged header instead.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Possible values:</term>
- <listitem>
- <para>
- Prevent the header from being sent with the keyword, <quote>block</quote>.
- Or, <quote>forge</quote> a URL to one from the same server as the request.
- Or, set to user defined value of your choice.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Example usage:</term>
- <listitem>
- <literallayout>
- <emphasis>{+hide-referer{forge}}</emphasis>
- <emphasis>.example.com</emphasis>
- </literallayout>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Notes:</term>
- <listitem>
- <para>
- <quote>forge</quote> is the preferred option here, since some servers will
- not send images back otherwise.
- </para>
- <para>
- <quote>+hide-referrer</quote> is an alternate spelling of
- <quote>+hide-referer</quote>. It has the exact same parameters, and can be freely
- mixed with, <quote>+hide-referer</quote>. (<quote>referrer</quote> is the
- correct English spelling, however the HTTP specification has a bug - it
- requires it to be spelled as <quote>referer</quote>.)
- </para>
- </listitem>
- </varlistentry>
-
-</variablelist>
-</sect3>
-
-
-<!-- ~~~~~ New section ~~~~~ -->
-<sect3 renderas="sect4" id="hide-user-agent">
-<title><emphasis>+hide-user-agent</emphasis></title>
-
-<variablelist>
- <varlistentry>
- <term>Type:</term>
- <!-- Boolean, Parameterized, Multi-value -->
- <listitem>
- <para>Parameterized.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Typical uses:</term>
- <listitem>
- <para>
- To change the <quote>User-Agent:</quote> header so web servers can't tell
- your browser type. Who's business is it anyway?
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Possible values:</term>
- <listitem>
- <para>
- Any user defined string.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Example usage:</term>
- <listitem>
- <literallayout>
- <emphasis>{+hide-user-agent{Netscape 6.1 (X11; I; Linux 2.4.18 i686)}}</emphasis>
- <emphasis>.msn.com</emphasis>
- </literallayout>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Notes:</term>
- <listitem>
- <para>
- Warning! This breaks many web sites that depend on this in order
- to determine how the target browser will respond to various
- requests. Use with caution.
- </para>
- </listitem>
- </varlistentry>
-
-</variablelist>
-</sect3>
-
-<!-- ~~~~~ New section ~~~~~ -->
-<sect3 renderas="sect4" id="handle-as-image">
-<title><emphasis>+handle-as-image</emphasis></title>
-
-<variablelist>
- <varlistentry>
- <term>Type:</term>
- <!-- Boolean, Parameterized, Multi-value -->
- <listitem>
- <para>Boolean.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Typical uses:</term>
- <listitem>
- <para>
- To define what <application>Privoxy</application> should treat
- automatically as an image, and is an important ingredient of how
- ads are handled.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Possible values:</term>
- <listitem>
- <para>
- N/A
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Example usage:</term>
- <listitem>
- <literallayout>
- <emphasis>{+handle-as-image}</emphasis>
- <emphasis>/.*\.(gif|jpg|jpeg|png|bmp|ico)</emphasis>
- </literallayout>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Notes:</term>
- <listitem>
- <para>
- This only has meaning if the URL (or pattern) also is
- <quote>+block</quote>ed, in which case a user definable image can
- be sent rather than a HTML page. This is integral to the whole concept of
- ad blocking: the URL must match <emphasis>both</emphasis> a <ulink
- url="actions-file.html#BLOCK"><quote>+block</quote></ulink> rule,
- <emphasis>and</emphasis> <quote>+handle-as-image</quote>.
- (See <ulink
- url="actions-file.html#SET-IMAGE-BLOCKER"><quote>+set-image-blocker</quote></ulink>
- below for control over what will actually be displayed by the browser.)
- </para>
- <para>
- There is little reason to change the default definition for this action.
- </para>
- </listitem>
- </varlistentry>
-
-</variablelist>
-</sect3>
-
-
-<!-- ~~~~~ New section ~~~~~ -->
-<sect3 renderas="sect4" id="set-image-blocker">
-<title><emphasis>+set-image-blocker</emphasis></title>
-
-<variablelist>
- <varlistentry>
- <term>Type:</term>
- <!-- Boolean, Parameterized, Multi-value -->
- <listitem>
- <para>Parameterized.</para>
- </listitem>
- </varlistentry>