From a4baf97170d1ab7b4c617d57473757afc9f351e4 Mon Sep 17 00:00:00 2001 From: oes Date: Sat, 31 Jan 2004 00:05:44 +0000 Subject: [PATCH] Regenerated from sgml source --- doc/webserver/developer-manual/coding.html | 192 +-- doc/webserver/developer-manual/contact.html | 34 +- doc/webserver/developer-manual/copyright.html | 20 +- doc/webserver/developer-manual/cvs.html | 52 +- .../developer-manual/documentation.html | 134 +- doc/webserver/developer-manual/index.html | 14 +- .../developer-manual/introduction.html | 12 +- .../developer-manual/newrelease.html | 168 ++- doc/webserver/developer-manual/seealso.html | 8 +- doc/webserver/developer-manual/testing.html | 16 +- .../developer-manual/webserver-update.html | 8 +- doc/webserver/faq/configuration.html | 152 +-- doc/webserver/faq/contact.html | 34 +- doc/webserver/faq/copyright.html | 24 +- doc/webserver/faq/general.html | 97 +- doc/webserver/faq/index.html | 168 ++- doc/webserver/faq/installation.html | 168 ++- doc/webserver/faq/misc.html | 260 ++-- doc/webserver/faq/trouble.html | 368 +++++- doc/webserver/index.html | 58 +- doc/webserver/privoxy-index.html | 37 +- doc/webserver/user-manual/actions-file.html | 1119 +++++++---------- doc/webserver/user-manual/appendix.html | 74 +- doc/webserver/user-manual/config.html | 604 ++++----- doc/webserver/user-manual/configuration.html | 45 +- doc/webserver/user-manual/contact.html | 38 +- doc/webserver/user-manual/copyright.html | 33 +- doc/webserver/user-manual/filter-file.html | 270 ++-- doc/webserver/user-manual/index.html | 42 +- doc/webserver/user-manual/installation.html | 401 +----- doc/webserver/user-manual/introduction.html | 22 +- doc/webserver/user-manual/quickstart.html | 85 +- doc/webserver/user-manual/seealso.html | 12 +- doc/webserver/user-manual/startup.html | 64 +- doc/webserver/user-manual/templates.html | 36 +- doc/webserver/user-manual/upgradersnote.html | 12 +- 36 files changed, 2483 insertions(+), 2398 deletions(-) diff --git a/doc/webserver/developer-manual/coding.html b/doc/webserver/developer-manual/coding.html index d8c96f39..dd5af68a 100644 --- a/doc/webserver/developer-manual/coding.html +++ b/doc/webserver/developer-manual/coding.html @@ -1,11 +1,11 @@ + Coding Guidelines4. Coding Guidelines4. Coding Guidelines

4.1. Introduction

4.1. Introduction

This set of standards is designed to make our lives easier. It is developed with the simple goal of helping us keep the "new and improved @@ -105,16 +105,16 @@ CLASS="SECT2" CLASS="SECT2" >4.2. Using Comments4.2. Using Comments

4.2.1. Comment, Comment, Comment

4.2.1. Comment, Comment, Comment

4.2.2. Use blocks for comments4.2.2. Use blocks for comments

4.2.3. Keep Comments on their own line4.2.3. Keep Comments on their own line

4.2.4. Comment each logical step4.2.4. Comment each logical step

4.2.5. Comment All Functions Thoroughly4.2.5. Comment All Functions Thoroughly

4.2.6. Comment at the end of braces if the - content is more than one screen length

4.3. Naming Conventions4.3. Naming Conventions

4.3.1. Variable Names

4.3.1. Variable Names

4.3.2. Function Names4.3.2. Function Names

4.3.3. Header file prototypes4.3.3. Header file prototypes

4.3.4. Enumerations, and #defines4.3.4. Enumerations, and #defines

4.3.5. Constants4.3.5. Constants

4.4. Using Space4.4. Using Space

4.4.1. Put braces on a line by themselves.

4.4.1. Put braces on a line by themselves.

4.4.2. ALL control statements should have a - block

4.4.3. Do not belabor/blow-up boolean - expressions

4.4.4. Use white space freely because it is - free

4.4.5. Don't use white space around structure - operators

4.4.6. Make the last brace of a function stand - out

4.4.7. Use 3 character indentions4.4.7. Use 3 character indentions

4.5. Initializing4.5. Initializing

4.5.1. Initialize all variables

4.5.1. Initialize all variables

4.6. Functions4.6. Functions

4.6.1. Name functions that return a boolean as a - question.

4.6.2. Always specify a return type for a - function.

4.6.3. Minimize function calls when iterating by - using variables

4.6.4. Pass and Return by Const Reference4.6.4. Pass and Return by Const Reference

4.6.5. Pass and Return by Value4.6.5. Pass and Return by Value

4.6.6. Names of include files4.6.6. Names of include files

4.6.7. Provide multiple inclusion - protection

4.6.8. Use `extern "C"` when appropriate4.6.8. Use `extern "C"` when appropriate

4.6.9. Where Possible, Use Forward Struct - Declaration Instead of Includes

4.7. General Coding Practices4.7. General Coding Practices

4.7.1. Turn on warnings

4.7.1. Turn on warnings

4.7.2. Provide a default case for all switch - statements

4.7.3. Try to avoid falling through cases in a - switch statement.

4.7.4. Use 'long' or 'short' Instead of - 'int'

4.7.5. Don't mix size_t and other types4.7.5. Don't mix size_t and other types

4.7.6. Declare each variable and struct on its - own line.

4.7.7. Use malloc/zalloc sparingly4.7.7. Use malloc/zalloc sparingly

4.7.8. The Programmer Who Uses 'malloc' is - Responsible for Ensuring 'free'

4.7.9. Add loaders to the `file_list' structure - and in order

4.7.10. "Uncertain" new code and/or changes to - existing code, use FIXME

4.8. Addendum: Template for files and function - comment blocks:

Contacting the developers, Bug Reporting and Feature Requests8. Contacting the developers, Bug Reporting and Feature Requests8. Contacting the developers, Bug Reporting and Feature Requests

We value your feedback. In fact, we rely on it to improve 8.1. Get Support8.1. Get Support

For casual users, our support forum at +> For casual users, our SourceForgesupport forum at SourceForge is probably best suited: 8.2. Report Bugs8.2. Report Bugs

Please report all bugs 8.3. Request New Features8.3. Request New Features

You are welcome to submit ideas on new features or other proposals for improvement through our feature request tracker at @@ -201,8 +201,8 @@ CLASS="SECT2" CLASS="SECT2" >8.4. Report Ads or Other Actions-Related Problems8.4. Report Ads or Other Actions-Related Problems

Please send feedback on ads that slipped through, innocent images that were blocked, and any other problems relating to the 8.5. Other8.5. Other

For any other issues, feel free to use the mailing lists. Technically interested users and people who wish to contribute to the project are also welcome on the developers list! diff --git a/doc/webserver/developer-manual/copyright.html b/doc/webserver/developer-manual/copyright.html index 5d4bc738..aae28830 100644 --- a/doc/webserver/developer-manual/copyright.html +++ b/doc/webserver/developer-manual/copyright.html @@ -1,11 +1,11 @@ + Privoxy Copyright, License and History9. Privoxy Copyright, License and History9. Privoxy Copyright, License and History

Copyright © 2001 - 2003 by Privoxy Developers Copyright © 2001 - 2004 by Privoxy Developers

Some source code is based on code Copyright © 1997 by Anonymous Coders @@ -97,8 +97,8 @@ CLASS="SECT2" CLASS="SECT2" >9.1. License9.1. License

9.2. History9.2. History

In the beginning, there was the The CVS Repository2. The CVS Repository2. The CVS Repository

If you become part of the active development team, you will eventually need write access to our holy grail, the CVS repository. One of the @@ -88,8 +88,8 @@ CLASS="SECT2" CLASS="SECT2" >2.1. Access to CVS2.1. Access to CVS

The project's CVS repository is hosted on for the technical access details for your operating system. For historical reasons, the CVS server is - called cvs.ijbswa.sourceforge.netcvs.ijbswa.sourceforge.net, the repository is - called ijbswaijbswa, and the source tree module is called - currentcurrent.

2.2. Branches2.2. Branches

Within the CVS repository, there are modules and branches. As - mentioned, the sources are in the currentcurrent

Branches are used to fork a sub-development path from the main trunk. - Within the currentcurrent module where the sources are, there is always at least one cvs -rcvs -r flag to check out a - branch, e.g: cvs co -r v_3_0_branch currentcvs co -r v_3_0_branch current.

2.3. CVS Commit Guidelines2.3. CVS Commit Guidelines

The source tree is the heart of every software project. Every effort must be made to ensure that it is readable, compilable and consistent at all @@ -281,9 +281,9 @@ TARGET="_top" > Stable branches are handled with more care, especially after the initial *.*.0 release, and we are just in bugfix mode. In addition to the above, the below applies only to the stable branch (currently the - v_3_0_branchv_3_0_branch branch):

Documentation Guidelines3. Documentation Guidelines3. Documentation Guidelines

All formal documents are maintained in Docbook SGML and located in the - doc/source/*doc/source/* directory. You will need

Formal documents are built with the Makefile targets of - make dokmake dok, or alternately - make redhat-dokmake redhat-dok. If you have problems, try both. The build process uses the document SGML sources in - doc/source/*/*doc/source/*/* to update all text files in - doc/text/doc/text/ and to update all HTML - documents in doc/webserver/doc/webserver/.

  • First, build the docs by running First, build the docs by running make - dok (or alternately (or alternately make - redhat-dok). For PDF docs, do ). For PDF docs, do make - dok-pdf.

  • Run Run make webservermake webserver which copies all - files from doc/webserverdoc/webserver to the sourceforge webserver via scp.

    after the the $VERSION$VERSION and other release specific data in 3.1. Quickstart to Docbook and SGML3.1. Quickstart to Docbook and SGML

    If you are not familiar with SGML, it is a markup language similar to HTML. Actually, not a mark up language per se, but a language used to define @@ -333,10 +333,10 @@ CLASS="QUOTE" CLASS="QUOTE" >"closed". If not, you - will likely generate errors. Example: <title>My - Title</title>. They are also case-insensitive, but we strongly suggest using all lower case. This keeps compatibility with [Docbook] "sections" for the most part. Sections - will be processed into HTML headers (e.g. h1h1 for - sect1sect1). The Docbook stylesheets will use these to also generate the Table of Contents for each doc. Our - TOC's are set to a depth of three. Meaning sect1sect1, - sect2, and sect2, and sect3sect3 will have TOC - entries, but sect4sect4 will not. Each section requires - a <title><title> element, and at least one - <para><para>. There is a limit of five section levels in Docbook, but generally three should be sufficient for our purposes.

    <literallayout></literallayout>, like - <pre><pre>, more or less. <screen></screen>, screen output, implies - <literallayout><literallayout>. <ulink url="example.com"></ulink>, like - HTML <a><a> tag. 3.2. Privoxy Documentation Style Documentation Style

    It will be easier if everyone follows a similar writing style. This just makes it easier to read what someone else has written if it @@ -665,9 +665,9 @@ CLASS="QUOTE" CLASS="APPLICATION" >aspell can check SGML with the - -H-H option. (ispell3.3. Privoxy Custom Entities3.3. Privoxy Custom Entities

    "internal entities". These are like variables in programming. Well, sort of. For instance, we have the - p-versionp-version entity that contains the current text entities are defined like:

    <!entity supported SYSTEM "supported.sgml"><!entity supported SYSTEM "supported.sgml">

    supported.sgml is available for inclusion anywhere in the doc. To make this happen, just reference the now defined - entity: &supported;&supported; (starts with an ampersand and ends with a semi-colon), and the contents will be dumped into the finished doc at that point. @@ -795,7 +795,7 @@ CLASS="APPLICATION" > version string, e.g. "3.0.2""3.0.3". Privoxy Developer ManualPrivoxy Developer ManualPrivoxy Developer Manual

    The developer manual provides guidance on coding, testing, packaging, documentation and other issues of importance to those involved with

    Please note that this document is constantly evolving. This copy represents - the state at the release of version 3.0.2. + the state at the release of version 3.0.3. You can find the latest version of the this manual at Introduction1. Introduction1. Introduction

    1.1. Quickstart to Privoxy Development1.1. Quickstart to Privoxy Development

    The first step is to join the Releasing a New Version6. Releasing a New Version6. Releasing a New Version

    When we release versions of 6.1. Version numbers6.1. Version numbers

    First you need to determine which version number the release will have. 0.0.00.0.0, during that period between releases when changes are being added. This is to denote that this code is . Then as the release nears, the version is bumped according: e.g. - 3.0.1 -> 0.0.0 -> 3.0.23.0.1 -> 0.0.0 -> 3.0.2.

  • 3.03.0, which is only used to release stable versions. Once the initial *.0 release of the stable branch has been done, then as a rule, only bugfixes that have had prior testing should be committed to @@ -232,9 +232,9 @@ CLASS="EMPHASIS" >and the stable release branch, - which is v_3_0_branchv_3_0_branch at the moment).

    6.2. Before the Release: Freeze6.2. Before the Release: Freeze

    The following link from the main page since we need to keep manuals for various versions available). The CGI pages will link to something like - http://privoxy.org/$(VERSION)/user-manual/http://privoxy.org/$(VERSION)/user-manual/. This will need to be updated for each new release. There is no Makefile target for this at this time!!! It needs to be done manually. @@ -429,8 +429,8 @@ CLASS="SECT2" CLASS="SECT2" >6.3. Building and Releasing the Packages6.3. Building and Releasing the Packages

    Now the individual packages can be built and released. Note that for GPL reasons the first package to be released is always the source tarball. @@ -494,8 +494,8 @@ CLASS="SECT3" CLASS="SECT3" >6.3.1. Note on Privoxy Packaging6.3.1. Note on Privoxy Packaging

    Please keep these general guidelines in mind when putting together your package. These apply to 6.3.2. Source Tarball6.3.2. Source Tarball

    First, 6.3.3. SuSE, Conectiva or Red Hat RPM6.3.3. SuSE, Conectiva or Red Hat RPM

    In following text, replace In following text, replace distdist with either privoxy-distdist.specdistdist which is built from version X.Y.Z. Check the

      make   make distdist-dist
      make   make dist-upload dist-upload rpm_packagerevrpm_packagerev

    where where rpm_packagerevrpm_packagerev is the RPM release number as determined above. Go to the displayed URL and release the file publicly on Sourceforge. @@ -970,8 +956,8 @@ CLASS="SECT3" CLASS="SECT3" >6.3.4. OS/26.3.4. OS/2

    First, 6.3.5. Solaris6.3.5. Solaris

    Login to Sourceforge's compilefarm via ssh:

    6.3.6. Windows6.3.6. Windows

    You should ensure you have the latest version of Cygwin (from 6.3.7. Debian6.3.7. Debian

    First,

      debchange -v 3.0.2-stable-1 "New upstream version"
    debchange -v 3.0.3-stable-1 "New upstream version" This will create ../privoxy_3.0.2-stable-1_i386.deb../privoxy_3.0.3-stable-1_i386.deb which can be uploaded. To upload the package to Sourceforge, simply issue @@ -1352,8 +1338,8 @@ CLASS="SECT3" CLASS="SECT3" >6.3.8. Mac OSX6.3.8. Mac OSX

    First, 6.3.9. FreeBSD6.3.9. FreeBSD

    Login to Sourceforge's compile-farm via ssh:

    6.3.10. HP-UX 116.3.10. HP-UX 11

    First, 6.3.11. Amiga OS6.3.11. Amiga OS

    First, 6.3.12. AIX6.3.12. AIX

    Login to Sourceforge's compilefarm via ssh:

    6.4. Uploading and Releasing Your Package6.4. Uploading and Releasing Your Package

    After the package is ready, it is time to upload it to SourceForge, and go through the release steps. The upload @@ -1727,17 +1713,17 @@ TARGET="_top" >

  • user: user: anonymousanonymous

  • password: password: ijbswa-developers@lists.sourceforge.netijbswa-developers@lists.sourceforge.net

  • http://sourceforge.net/project/admin/editpackages.php?group_id=11118, making sure you are logged in. Find your target platform in the - second column, and click Add ReleaseAdd Release. You will then need to create a new release for your package, using the format - of $VERSION ($CODE_STATUS)$VERSION ($CODE_STATUS), e.g. 3.0.2 +>3.0.3 (beta). @@ -1800,13 +1786,13 @@ CLASS="QUOTE"

    If you have made errors, or need to make changes, you can go through - essentially the same steps, but select Edit ReleaseEdit Release, - instead of Add ReleaseAdd Release.

    6.5. After the Release6.5. After the Release

    When all (or: most of the) packages have been uploaded and made available, send an email to the See also10. See also10. See also

    Other references and sites of interest to Testing Guidelines5. Testing Guidelines5. Testing Guidelines

    To be filled.

    5.1. Testplan for releases5.1. Testplan for releases

    Explain release numbers. major, minor. developer releases. etc. @@ -159,8 +159,8 @@ CLASS="SECT2" CLASS="SECT2" >5.2. Test reports5.2. Test reports

    Please submit test reports only with the Update the Webserver7. Update the Webserver7. Update the Webserver

    The webserver should be updated at least with each stable release. When updating, please follow these steps to make sure that no broken links, diff --git a/doc/webserver/faq/configuration.html b/doc/webserver/faq/configuration.html index c9c55ab4..73ff78cb 100644 --- a/doc/webserver/faq/configuration.html +++ b/doc/webserver/faq/configuration.html @@ -1,11 +1,11 @@ + Configuration3. Configuration3. Configuration

    3.1. Where can I get updated Actions Files?

    3.1. Where can I get updated Actions Files?

    Based on your feedback and the continuing development, updated actions files will be made available on the 3.2. Can I use my old config files?3.2. Can I use my old config files?

    The syntax, number, and purpose of configuration files has substantially changed from

    3.3. What is an "actions" file?

    file?

    3.4. The "actions""actions"..

    For a comprehensive discussion of the actions concept, please refer to the

    3.5. How are actions files configured? What is the easiest -way to do this?

    Actions files are just text files in a special syntax and can be edited with a text editor. But probably the easiest way is to access @@ -262,13 +262,13 @@ CLASS="SECT2" >

    3.6. There are several different "actions" files. What are -the differences?

    As of 3.7. How can I make my Yahoo/Hotmail/GMX account work?3.7. How can I make my Yahoo/Hotmail/GMX account work?

    The default configuration shouldn't impact the usability of any of these services. It will, however, make all cookies temporary, so that your browser will forget your @@ -378,7 +378,6 @@ CLASS="SECT2" CLASS="SECT2" >3.8. What's the difference between the and "Adventuresome" defaults? defaults?

    Configuring 3.9. Why can I change the configuration -with a browser? Does that not raise security issues?

    It may seem strange that regular users can edit the config files with their browsers, although the whole ""enable-edit-actions - 0" and ""enable-remote-toggle - 0" in the

    3.10. What is the default.filter file? What is a "filter"?

    ?

    The filterfilter action in one of the actions files. Filtering is automatically @@ -602,34 +602,34 @@ CLASS="SECT2" >

    3.11. How can I set up Privoxy to act as a proxy for my - LAN?

    By default, Privoxy only responds to requests - from 127.0.0.1127.0.0.1 (localhost). To have it act as a server for a network, this needs to be changed in the main configuration file. Look for - the listen-address option, which may be commented out with a

    3.12. Instead of ads, now I get a checkerboard pattern. I don't want to see anything.

    3.12. Instead of ads, now I get a checkerboard pattern. I don't want to see anything.

    The replacement for blocked images can be controlled with the set-image-blockerset-image-blocker action. You have the choice of a checkerboard pattern, a transparent 1x1 GIF @@ -732,13 +732,13 @@ CLASS="QUOTE" >"blank"), or a redirect to a custom image of your choice. Note that this choice only has effect for images which are blocked as images, i.e. - whose URLs match both a handle-as-image and block action.

    If you want to see nothing, then change the set-image-blockerset-image-blocker action to

    3.13. Why would anybody want to see a checkerboard pattern?

    3.13. Why would anybody want to see a checkerboard pattern?

    Remember that

    3.14. I see some images being replaced by a text -instead of the checkerboard image. Why and how do I get rid of this?

    This happens when the banners are not embedded in the HTML code of the page itself, but in separate HTML (sub)documents that are loaded into (i)frames @@ -839,12 +839,12 @@ CLASS="SECT2" CLASS="SECT2" >3.15. Can Privoxy run as a service -on Win2K/NT?

    Yes, it can run as a system service using 3.16. How can I make PrivoxySquid??

    This can be done and is often useful to combine the benefits of 3.17. Can I just set Privoxy to use port 80 -and thus avoid individual browser configuration?

    No, its more complicated than that. This only works with special kinds of proxies known as 3.18. Can Privoxy run as a "transparent" proxy? proxy?

    No, 3.19. How can I configure PrivoxyOutlook Express??

    3.20. How can I have separate rules just for HTML mail?3.20. How can I have separate rules just for HTML mail?

    The short answer is, you can't. 3.21. How can I allow permanent cookies for my trusted sites?3.21. How can I allow permanent cookies for my trusted sites?

    There are several actions that relate to cookies. The default behavior is to allow only

    To disable all cookie actions, so that cookies are allowed unrestricted, - both in and out, for example.comexample.com:

    user.action includes an alias for this situation, called - allow-cookiesallow-cookies.

    Contacting the developers, Bug Reporting and Feature Requests6. Contacting the developers, Bug Reporting and Feature Requests6. Contacting the developers, Bug Reporting and Feature Requests

    We value your feedback. In fact, we rely on it to improve 6.1. Get Support6.1. Get Support

    For casual users, our support forum at +> For casual users, our SourceForgesupport forum at SourceForge is probably best suited: 6.2. Report Bugs6.2. Report Bugs

    Please report all bugs 6.3. Request New Features6.3. Request New Features

    You are welcome to submit ideas on new features or other proposals for improvement through our feature request tracker at @@ -201,8 +201,8 @@ CLASS="SECT2" CLASS="SECT2" >6.4. Report Ads or Other Actions-Related Problems6.4. Report Ads or Other Actions-Related Problems

    Please send feedback on ads that slipped through, innocent images that were blocked, and any other problems relating to the 6.5. Other6.5. Other

    For any other issues, feel free to use the mailing lists. Technically interested users and people who wish to contribute to the project are also welcome on the developers list! diff --git a/doc/webserver/faq/copyright.html b/doc/webserver/faq/copyright.html index e0bc59e7..e26f35de 100644 --- a/doc/webserver/faq/copyright.html +++ b/doc/webserver/faq/copyright.html @@ -1,11 +1,11 @@ + Privoxy Copyright, License and History7. Privoxy Copyright, License and History7. Privoxy Copyright, License and History

    Copyright © 2001 - 2003 by Privoxy Developers Copyright © 2001 - 2004 by Privoxy Developers

    Some source code is based on code Copyright © 1997 by Anonymous Coders @@ -103,9 +103,9 @@ CLASS="SECT2" >

    7.1. License

    7.1. License

    7.2. History

    7.2. History

    In the beginning, there was the General Information1. General Information1. General Information

    1.1. What is this new version of Privoxy?

    ?

    In the beginning, there was the 1.2. Why "Privoxy"? Why a name change at all?? Why a name change at all?

    1.3. How does PrivoxyJunkbuster?

    1.4. What is a "proxy"Privoxy work? work?

    A web proxy is a service, based on a software such as 1.5. How does Privoxy know what is -an ad, and what is not?

    1.6. Can Privoxy make mistakes? -This does not sound very scientific.

    Actually, it's a black art ;-) And yes, it is always possible to have a broad - rule accidentally block or change something by mistake. There is a good chance - you may run into such a situation at some point. It is tricky writing rules to + rule accidentally block or change something by mistake. You will almost surely + run into such situations at some point. It is tricky writing rules to cover every conceivable possibility, and not occasionally get false positives.

    But this should not be a big concern since the @@ -538,9 +538,43 @@ CLASS="SECT2" >

    1.7. Will I have to configure Privoxy + before I can use it?

    No, not really. The default installation should give you a good starting + point, and block most unwanted content.

    But you will certainly run into situations where there are false positives, + or ads not being blocked that you may not want to see. In these cases, you + would certainly benefit by customizing Privoxy's + configuration to more closely match your individual situation. And we would + encourage you to do this. This is where the real power of + Privoxy lies!

    1.7. My browser does the same things as +>1.8. My browser does the same things as PrivoxyPrivoxy at all?

    at all?

    Modern browsers do indeed have 1.8. Is there is a license or fee? What about a -warranty? Registration?1.9. Is there is a license or fee? What about a +warranty? Registration?

    1.9. I would like to help you, what do I do?1.10. I would like to help you, what do I do?

    1.9.1. Money Money Money

    1.10.1. Money Money Money

    We, of course, welcome donations and could use money for domain registering, buying software to test 1.9.2. Software1.10.2. Software

    If you are a vendor of a web-related software like a browser, web server or proxy, and would like us to ensure that 1.9.3. You want to work with us?1.10.3. You want to work with us?

    Well, helping the team is always a good idea. We welcome new developers, packaging gurus or documentation writers. Simply Privoxy Frequently Asked QuestionsPrivoxy Frequently Asked QuestionsPrivoxy Frequently Asked Questions

    Copyright © 2001, 2002 by +> © 2001-2004 by

    $Id: faq.sgml,v 1.61.2.28 2003/03/18 19:37:21 oes Exp $

    $Id: faq.sgml,v 1.61.2.40 2004/01/30 17:00:33 oes Exp $

    This FAQ gives quick answers to frequently asked questions about Privoxy is a web proxy with advanced filtering - capabilities for protecting privacy, filtering web page content, managing + capabilities for protecting privacy, modifying web page content, managing cookies, controlling access, and removing ads, banners, pop-ups and other obnoxious Internet junk. (tm).

    Please note that this document is constantly evolving. This copy represents - the state at the release of version 3.0.2. + the state at the release of version 3.0.3. You can find the latest version of the document at

    1.7. Will I have to configure Privoxy + before I can use it?
    1.8. My browser does the same things as at all?
    1.8. 1.9. Is there is a license or fee? What about a warranty? Registration?
    1.9. 1.10. I would like to help you, what do I do?
    1.9.1. 1.10.1. Money Money Money
    1.9.2. 1.10.2. Software
    1.9.3. 1.10.3. You want to work with us?
    2.5. I just installed Privoxy, and nothing is happening. All the ads are there. What's wrong?
    2.8. I get a "Privoxy is not being used" dummy page although +Privoxy is running and being used.
    3.3. What is an "actions"
    3.5. How are actions files configured? What is the easiest way to do this?
    3.6. There are several different "actions"
    3.10. What is the default.filter
    3.11. How can I set up Privoxy
    3.12. Instead of ads, now I get a checkerboard pattern. I don't want to see anything.
    3.13. Why would anybody want to see a checkerboard pattern?
    3.14. I see some images being replaced by a text instead of the checkerboard image. Why and how do I get rid of this?
    4.1. How much does Privoxy
    4.7. Can Privoxy
    4.8. Might some things break because header information or content is being altered?
    4.9. Can Privoxy
    4.10. What about as a firewall? Can Privoxy
    4.11. I have large empty spaces / a checkerboard pattern now where ads used to be. Why?
    4.12. How can Privoxy
    4.13. Privoxy
    4.18. I just downloaded a Perl script, and Privoxy +altered it! Yikes, what is wrong!
    4.19. Where can I find more information about
    4.19. 4.20. I've noticed that Privoxy changes
    5.1. I just upgraded and am getting "connection refused"
    5.2. I just added a new rule, but the steenkin ad is still getting through. How?
    5.8. In Mac OSX Panther (10.3), images often fail to load and/or I + experience random delays in page loading. I'm using + localhost as my browser's proxy setting.
    5.9. I get a completely blank page at one site. the page loads fine.
    5.9. 5.10. Why am I getting a 503 Error (WSAECONNREFUSED) on every page?
    5.11. My logs show many "Unable to get my own hostname" lines. +Why?
    5.12. When I try to launch Privoxy, I get an +error message "port 8118 is already in use" (or similar wording). +Why?
    5.13. Pages with UTF-8 fonts are garbled.
    5.14. Why are binary files (such as images) corrupted when Privoxy + is used?
    5.15. What is the "demoronizer" and why is it there?
    5.16. Why do I keep seeing "PrivoxyWindowOpen()" in raw source code?
    7.1. License
    7.2. History
    Installation2. Installation2. Installation

    2.1. Which browsers are supported by Privoxy?

    ?

    Any browser that can be configured to use a proxy, which should be virtually all browsers. Direct browser support is not necessary @@ -103,8 +103,8 @@ CLASS="SECT2" CLASS="SECT2" >2.2. Which operating systems are supported?2.2. Which operating systems are supported?

    At present, 2.3. Can I use Privoxy with my email client? with my email client?

    As long as there is some way to set a HTTP proxy for the client, then yes, any application can be used, whether it is strictly speaking a @@ -174,7 +174,6 @@ CLASS="SECT2" CLASS="SECT2" >2.4. Can I install over Junkbuster??

    We recommend you un-install

    2.5. I just installed Privoxy. Is there anything -special I have to do now?

    All browsers must be told to use 2.6. What is the proxy address of Privoxy??

    If you set up the Privoxy to run on the computer you browse from (rather than your ISP's server or some - networked computer on a LAN), the proxy will be on 127.0.0.1127.0.0.1 (sometimes referred to as Privoxy does not currently handle - protocols such as FTP, SMTP, IM, IRC, ICQ, or other Internet - protocols. + any other protocols such as FTP, SMTP, IM, IRC, ICQ, etc.

    2.7. I just installed Privoxy, and nothing is happening. -All the ads are there. What's wrong?

    Did you configure your browser to use is running, and your browser is correctly configured by entering the special URL: http://config.privoxy.org/. +>http://p.p/. + This should take you to a page titled "This is Privoxy.."log file. For instructions + on starting Privoxy and browser configuration, + see the chapter + on starting Privoxy in the + user manual.

    2.8. I get a "Privoxy is not being used" dummy page although +Privoxy is running and being used.

    First, make sure that Privoxy is really running and + being used by visiting http://p.p/. You + should see the Privoxy main page. If not, see + the chapter + on starting Privoxy in the + user manual.

    Now if http://p.p/ works for you, but + other parts of Privoxy's web interface show + the dummy page, your browser has cached a redirection it encountered before + Privoxy was being used. You need to clear your + browser's cache. Note that shift-reloading the dummy page won't help, since + that'll only refresh the dummy page, not the redirection that lead you there.

    The procedure for clearing the cache varies from browser to browser. As an + example, Mozilla users would click + Edit --> Preferences --> + Advanced --> Cache and + then click both "Clear Memory Cache" + and "Clear Disk Cache".

    Miscellaneous4. Miscellaneous4. Miscellaneous

    4.1. How much does Privoxy slow my browsing down? This -has to add extra time to browsing.

    It should not slow you down any in real terms, and may actually help speed things up since ads, banners and other junk are not being displayed. @@ -102,21 +102,21 @@ CLASS="APPLICATION" > "Filtering" content via the content via the filter or - deanimate-gifs actions may cause a perceived slowdown, since the entire document needs to be buffered before displaying. See below.

    4.2. I noticed considerable -delays in page requests compared to the old Junkbuster. What's wrong?

    If you use any If you use any filter action, - such as filtering banners by size, web-bugs etc, or the deanimate-gifs action, the entire document must be loaded into memory in order for the filtering mechanism to work, and nothing is sent to the browser during this time.

    Filtering is automatically disabled for inappropriate MIME types.

    Filtering is automatically disabled for inappropriate MIME types. But note + that if the web server mis-reports the MIME type, then content that should + not be filtered, could be. Privoxy only knows how + to differentiate filterable content because of the MIME type as reported by + the server, or because of some configuration setting that enables/disables + filtering.

    4.4. Do you still maintain the blocklists?4.4. Do you still maintain the blocklists?

    No. The patterns for blocking now reside (among other things) in the 4.5. How can I submit new ads?4.5. How can I submit new ads?

    Yes, absolutely! Please see the 4.6. How can I hide my IP address?4.6. How can I hide my IP address?

    If you run both the browser and the proxy locally, you cannot hide your IP address with

    4.7. Can Privoxy guarantee I am anonymous?

    guarantee I am anonymous?

    No. Your chances of remaining anonymous are greatly improved, but unless you are an expert on Internet security it would be safest to assume that @@ -373,10 +381,10 @@ CLASS="SECT2" >

    4.8. Might some things break because header information or -content is being altered?

    Definitely. More and more sites use HTTP header content to decide what to display and how to display it. There is many ways that this can be handled, @@ -423,8 +431,7 @@ CLASS="SECT2" >

    4.9. Can Privoxy"caching" proxy to -speed up web browsing?

    No, it does not have this ability at all. You want something like

    4.10. What about as a firewall? Can Privoxy protect me?

    protect me?

    Not in the way you mean, or in the way a true firewall can.

    4.11. I have large empty spaces / a checkerboard pattern now where -ads used to be. Why?

    It would be technically possible eliminate the banners in a way that frees their screen estate in many cases, by doing all banner blocking with filters, @@ -516,12 +524,12 @@ CLASS="SECT2" >

    4.12. How can Privoxy filter Secure (HTTPS) URLs?

    filter Secure (HTTPS) URLs?

    Since secure HTTP connections are encrypted SSL sessions between your browser and the secure site, and are meant to be reliably "Content cookies" (those that are embedded in the actual HTML or - JS page content, see filter{content-cookies}), in an SSL transaction will be impossible to block under these conditions. Fortunately, this does not seem to be a very common scenario since most @@ -578,8 +586,7 @@ CLASS="SECT2" >

    4.13. Privoxy"server". How -secure is it? Do I need to take any special precautions?

    There are no known exploits that might affect 4.14. How can I temporarily disable Privoxy??

    The easiest way is to access 4.15. When "disabled"Privoxy totally -out of the picture?

    No, this just means all filtering and actions are disabled. 4.16. My logs show Privoxy"crunch"??

    A 4.17. Can Privoxy effect files that I download -from a webserver? FTP server?

    From the webserver's perspective, there is no difference between viewing a document (i.e. a page), and downloading a file. The same is true of Privoxy. If there is a match for a . If there is a match for a block pattern, - it will still be blocked, and of course this is obvious. Filtering is - potentially more of a concern since the results are not always so obvious.

    Filtering is potentially more of a concern since the results are not always + so obvious, and the effects of filtering are there whether the file is simply + viewed, or downloaded. And potentially whether the content is some obnoxious + advertizement, or Mr. Jimmy's latest/greatest source code jewel. Of course, + one of these presumably is "bad" content that we don't want, and + the other is "good" content that we do want. + Privoxy is blind to the differences, and can only + distinguish "good from bad" by the configuration parameters + we give it.

    Privoxy knows to ignore these where - appropriate. It is possible, however, that documents that are of an unknown - type (generally assumed to be Privoxy potentially can filter HTML + as well as plain text documents, subject to configuration parameters of + course. Also, documents that are of an unknown type (generally assumed to be + "text/plain") will be filtered, as - will those that might be incorrectly reported by the webserver. If such a - file is a downloaded file that is intended to be saved to disk, then any - content that might have been altered by filtering, will be saved too, for - these (probably very rare) cases.

    ) can be filtered, as will those that might be + incorrectly reported by the webserver. If such a file is a downloaded file + that is intended to be saved to disk, then any content that might have been + altered by filtering, will be saved too, for these (probably rare) cases.

    Note that versions later than 3.0.2 do NOT filter document types of + "text/plain". Prior to this, Privoxy + did filter this document type.

    In short, filtering is "ON" if a) the Document Type as reported + by the webserver is appropriate and b) the configuration + allows it (or at least does not disallow it). That's it. There is no magic + cookie anywhere to say this is "good" and this is + "bad". It's the configuration that let's it all happen or not.

    If you download text files, you probably do not want these to be filtered, + particularly if the content is source code, or other critical content. Source + code sometimes might be mistaken for Javascript (i.e. the kind that might + open a pop-up window). It is recommended to turn off filtering for download + sites (particularly if the content may be plain text files and you are using + version 3.0.2 or earlier) in your user.action file. And + also, for any site or page where making any changes at + all to the content is to be avoided.

    Privoxy does not do FTP at all, only HTTP - protocols.

    4.18. Where can I find more information about 4.19. Where can I find more information about Privoxy -and related issues?

    Other references and sites of interest to 4.19. I've noticed that Privoxy changes 4.20. I've noticed that Privoxy changes "Microsoft" to "MicroSuck"! Why are you manipulating my browsing?! Why are you manipulating my browsing?

    We're not. The text substitutions that you are seeing are disabled in the default configuration as shipped. You have either manually activated the ""funfun" filter which is clearly labeled Troubleshooting5. Troubleshooting5. Troubleshooting

    5.1. I just upgraded and am getting "connection refused" -with every web page?

    Either listen-addresslisten-address option in

    5.2. I just added a new rule, but the steenkin ad is -still getting through. How?

    If the ad had been displayed before you added its URL, it will probably be held in the browser's cache for some time, so it will be displayed without @@ -160,12 +160,12 @@ CLASS="SECT2" CLASS="SECT2" >5.3. One of my favorite sites does not work with Privoxy. -What can I do?

    First verify that it is indeed a Alternately, if you are comfortable with a text editor, you can accomplish the same thing by editing the appropriate actions file. Probably the easiest way to deal with such problems when editing by hand is to add your - site to a { fragile }{ fragile } section in user.action5.4. After installing Privoxy, I have to log in -every time I start IE. What gives?

    This is a quirk that effects the installation of 5.5. I cannot connect to any FTP sites. Privoxy - seems to be blocking me.

    Privoxy - as an FTP proxy. The same is true for any protocol other than HTTP or HTTPS. + as an FTP proxy. The same is true for any protocol other than HTTP + or HTTPS.

    Most browsers understand FTP as well as HTTP. If you connect to a site, with - a URL like ftp://ftp.example.comftp://ftp.example.com, your browser is making an FTP connection, and not a HTTP connection. So while your browser may speak FTP, does not, and cannot proxy such traffic.

    To complicate matters, some systems may have a generic "proxy" + setting, which will silently enable both HTTP and FTP + proxying! So it is possible to accidentally enable FTP proxying in these + cases. And of course, if this happens, Privoxy + will indeed cause problems since it does not know FTP. +

    Will Privoxy ever proxy FTP traffic? Unlikely. + There just is not much reason, and the work to make this happen is more than + it may seem. +

    5.6. In Mac OSX, I can't configure Microsoft Internet Explorer to use Privoxy as the HTTP proxy. as the HTTP proxy.

    Microsoft Internet Explorer (in versions like 5.1) respects system-wide network settings. In order to change the HTTP proxy, open System Preferences, and click on the Network icon. In the settings pane that comes up, click on the Proxies tab. Ensure the "Web Proxy (HTTP)" checkbox - is checked and enter 127.0.0.1127.0.0.1 in the entry field. - Enter 81188118 in the Port field. The next time you start IE, it should reflect these values.

    5.7. In Mac OSX, I dragged the Privoxy folder to the trash in order to uninstall it. Now the finder tells me I don't have sufficient privileges to - empty the trash.

    Just dragging the

    5.8. In Mac OSX Panther (10.3), images often fail to load and/or I + experience random delays in page loading. I'm using + localhost as my browser's proxy setting.

    We believe this is due to an IPv6-related bug in OSX, but don't fully + understand the issue yet. In any case, changing the proxy setting to + 127.0.0.1 instead of localhost + works around the problem. +

    5.8. I get a completely blank page at one site. 5.9. I get a completely blank page at one site. "View Source" @@ -409,7 +468,8 @@ CLASS="MARKUP" Privoxy the page loads fine.

    the page loads fine.

    Chances are that the site suffers from a bug in

    To find out if this is in fact the source of the problem, try adding - the site to a -prevent-compression-prevent-compression section in 5.9. Why am I getting a 503 Error (WSAECONNREFUSED) on every page?5.10. Why am I getting a 503 Error (WSAECONNREFUSED) on every page?

    More than likely this is a problem with the network stack. ZoneAlarm has been reported to cause this symptom -- even if not running. The solution is @@ -476,6 +536,238 @@ NAME="ERROR503" cause similar type problems if not configured correctly.

    5.11. My logs show many "Unable to get my own hostname" lines. +Why?

    Privoxy tries to get the hostname of the system + its running on from the IP address of the system interface it is bound to + (from the config file + listen-address setting). If the system cannot supply + this information, Privoxy logs this condition.

    Typically, this would be considered a system configuration error. It is not a + fatal error to Privoxy however, but may result in + a much slower response from Privoxy due to DNS + timeouts.

    5.12. When I try to launch Privoxy, I get an +error message "port 8118 is already in use" (or similar wording). +Why?

    Port 8118 is Privoxy's default TCP + "listening" port. Typically this message would mean that there + is already one instance of Privoxy running, and + you are actually trying to start a second Privoxy + on the same port, which will not work. How and why this might happen varies + from platform to platform, but you need to check your installation and + start-up procedures.

    5.13. Pages with UTF-8 fonts are garbled.

    This is caused by the "demoronizer" filter, which was introduced + in version 3.0.2, and was inappropriately turned on by default. You should + either upgrade Privoxy, or at least upgrade to the most + recent default.action file available from + SourceForge. + Or you can simply disable the demoronizer filter.

    5.14. Why are binary files (such as images) corrupted when Privoxy + is used?

    This may also be caused by the "demoronizer" filter, + in conjunction with a web server that is misreporting a file type. Binary + files are exempted from Privoxy's filtering + (unless the web server by mistake says the file is a plain text file). Either + upgrade Privoxy, or go to the most recent + default.action file available from SourceForge.

    5.15. What is the "demoronizer" and why is it there?

    The original demoronizer was a Perl script that cleaned up HTML pages which + were created with certain Microsoft products. MS has used proprietary extensions + to standardized font encodings (ISO 8859-1), which has caused problems for pages + that are viewed with non-Microsoft products (and are expecting to see a + standard set of fonts). The demoronizer corrected these errors so the pages + displayed correctly. Privoxy borrowed from this + script, introducing a filter based on the original demoronizer, which in turn could + correct these errors on the fly.

    But this is only needed in some situations, and will cause serious problems in some + other situations.

    If you are using Microsoft products, you do not need it. If you need to view + pages with UTF-8 characters (such as Cyrillic or Chinese), then it will + cause corruption of the fonts, and thus should not be on.

    On the other hand, if you use non-Microsoft products, and you occasionally + notice wierd characters on pages, you might want to try it.

    This filter was introduced with version 3.0.2 of Privoxy, + and was on by default in that version. It is off in all subsequent versions + (unless turned on by the user).

    5.16. Why do I keep seeing "PrivoxyWindowOpen()" in raw source code?

    Privoxy is attempting to disable malicious + Javascript in this case, with the unsolicited-popups + filter. Privoxy cannot tell very well + "good" code snippets from "bad" code snippets.

    If you see this in HTML source, and the page displays without problems, then + this is good, and likely some pop-up window was disabled. If you see this + where it is causing a problem, such as a downloaded program source code file, + then you should set an exception for this site or page such that the + integrity of the page stays in tact by disabling all filtering.

    Privoxy 3.0.3 User Manual
    Privoxy is developed on:
    >

    Copyright © 2001 - 2003 by Privoxy Developers +> Copyright © 2001 - 2004 by Privoxy Developers

    Privoxy - The Privacy Enhancing Proxy
    Privoxy - The Privacy Enhancing ProxyPrivoxy - The Privacy Enhancing Proxy

    Project Index Page v3.0.2

    Project Index Page v3.0.3

    -

    Privoxy is a web proxy with advanced filtering - capabilities for protecting privacy, filtering web page content, managing + capabilities for protecting privacy, modifying web page content, managing cookies, controlling access, and removing ads, banners, pop-ups and other obnoxious Internet junk. DownloadDownload

  • Download the latest CVS snapshot (source tarball) @@ -167,8 +164,8 @@ CLASS="SECT1" CLASS="SECT1" >DocumentationDocumentation

    More informationMore information


    Copyright © 2001 - 2003 by Privoxy Developers +> Copyright © 2001 - 2004 by Privoxy Developers

  • Actions Files
    Privoxy 3.0.2 User Manual
    8. Actions Files8. Actions Files

    The actions files are used to define what actions

    no

    8.1. Finding the Right Mix

    8.1. Finding the Right Mix

    Note that some

    8.2. How to Edit

    8.2. How to Edit

    The easiest way to edit the actions files is with a browser by using our browser-based editor, which can be reached from 8.3. How Actions are Applied to URLs8.3. How Actions are Applied to URLs

    Actions files are divided into sections. There are special sections, like the { +handle-as-image } }, - then later another one with just { +block } }, resulting in 8.4. Patterns8.4. Patterns

    As mentioned, Privoxy pattern has the form - <domain>/<path><domain>/<path>, where both the - <domain> and <domain> and <path><path> are - optional. (This is why the special // pattern matches all URLs). Note that the protocol portion of the URL pattern (e.g. - http://http://) should

    www.example.com/www.example.com/

    is a domain-only pattern and will match any request to is a domain-only pattern and will match any request to www.example.comwww.example.com, regardless of which document on that server is requested.

    www.example.comwww.example.com

    means exactly the same. For domain-only patterns, the trailing means exactly the same. For domain-only patterns, the trailing // may be omitted.

    www.example.com/index.htmlwww.example.com/index.html

    matches only the single document matches only the single document /index.html/index.html - on www.example.comwww.example.com.

    /index.html/index.html

    matches the document matches the document /index.html/index.html, regardless of the domain, i.e. on

    index.htmlindex.html

    matches nothing, since it would be interpreted as a domain name and - there is no top-level domain called .html.html.

    8.4.1. The Domain Pattern

    8.4.1. The Domain Pattern

    The matching of the domain part offers some flexible options: if the domain starts or ends with a dot, it becomes unanchored at that end. @@ -879,9 +709,9 @@ NAME="AEN1898" CLASS="VARIABLELIST" >

    .example.com.example.com

    ENDS in - .example.com.example.com

    www.www.

    STARTS with - www.www.

    .example..example.

    CONTAINS .example..example. - (Correctly speaking: It matches any FQDN that contains exampleexample as a domain.)

    ad*.example.comad*.example.com

    *ad*.example.com*ad*.example.com

    .?pix.com.?pix.com

    matches matches www.ipix.comwww.ipix.com, - pictures.epix.com, pictures.epix.com, a.b.c.d.e.upix.coma.b.c.d.e.upix.com etc.

    www[1-9a-ez].example.c*www[1-9a-ez].example.c*

    matches matches www1.example.comwww1.example.com, - www4.example.cc, www4.example.cc, wwwd.example.cywwwd.example.cy, - wwwz.example.comwwwz.example.com etc., but not - wwww.example.comwwww.example.com.

    8.4.2. The Path Pattern

    8.4.2. The Path Pattern

    http://www.pcre.org/man.txt. - You might also find the Perl man page on regular expressions (man perlreman perlre) useful, which is available on-line at "(?-i)" switch: switch: www.example.com/(?-i)PaTtErN.*www.example.com/(?-i)PaTtErN.* will match - only documents whose path starts with PaTtErNPaTtErN in 8.5. Actions8.5. Actions

    All actions are disabled by default, until they are explicitly enabled somewhere in an actions file. Actions are turned on if preceded with a @@ -1143,29 +973,29 @@ CLASS="QUOTE" CLASS="QUOTE" >"-". So a - +action+action means "do that action", e.g. - +block+block means "please block URLs that match the following patterns", and , and -block-block means "don't - block URLs that match the following patterns, even if +block+block previously applied."

    Again, actions are invoked by placing them on a line, enclosed in curly braces and separated by whitespace, like in - {+some-action -some-other-action{some-parameter}}{+some-action -some-other-action{some-parameter}}, followed by a list of URL patterns, one per line, to which they apply. Together, the actions line and the following pattern lines make up a section @@ -1208,27 +1038,19 @@ WIDTH="90%" >

    - Example: +block+block

    - Example: +hide-user-agent{ Mozilla 1.0 }+hide-user-agent{ Mozilla 1.0 }

    - Examples: +add-header{X-Fun-Header: Some text}+add-header{X-Fun-Header: Some text} and - +filter{html-annoyances}+filter{html-annoyances}

    8.5.1. add-header8.5.1. add-header

    Any string value is possible. Validity of the defined HTTP headers is not checked. It is recommended that you use the ""X-X-" prefix for custom headers. @@ -1504,8 +1304,8 @@ CLASS="SECT3" CLASS="SECT3" >8.5.2. block8.5.2. block

    Requests for URLs to which this action applies are blocked, i.e. the requests are not forwarded to the remote server, but answered locally with a substitute page or image, - as determined by the handle-as-image - and set-image-blocker actions.

    both - block and block and handle-as-image, apply to the same request: it will then be replaced by an image. If - set-image-blocker (see below) also applies, the type of image will be determined by its parameter, if not, the standard checkerboard pattern is sent. @@ -1623,12 +1423,12 @@ CLASS="APPLICATION" ads and other unwanted content.

    The The filter action can perform a very similar task, by 8.5.3. crunch-incoming-cookies8.5.3. crunch-incoming-cookies

    outgoing cookies, use - crunch-outgoing-cookies. Use no sense at all to use this action in conjunction - with the session-cookies-only action, since it would prevent the session cookies from being set. See also - filter-content-cookies.

    8.5.4. crunch-outgoing-cookies8.5.4. crunch-outgoing-cookies

    incoming cookies, use - crunch-incoming-cookies. Use no sense at all to use this action in conjunction - with the session-cookies-only action, since it would prevent the session cookies from being read.

    8.5.5. deanimate-gifs8.5.5. deanimate-gifs

    8.5.6. downgrade-http-version8.5.6. downgrade-http-version

    8.5.7. fast-redirects8.5.7. fast-redirects

    8.5.8. filter8.5.8. filter

    Effect:

    Text documents, including HTML and JavaScript, to which this action - applies, are filtered on-the-fly through the specified regular expression - based substitutions. +> All files of text-based type, most notably HTML and JavaScript, to which this + action applies, are filtered on-the-fly through the specified regular expression + based substitutions. (Note: as of version 3.0.3 plain text documents + are exempted from filtering, because web servers often use the + text/plain MIME type for all files whose type they + don't know.)

    default.filter, set by the - filterfile option in the

    The amount of data that can be filtered is limited to the - buffer-limit option in the main

    Inappropriate MIME types, such as zipped files, are not filtered at all. - Encrypted SSL data (from HTTPS servers) cannot be filtered either since - this would violate the integrity of the secure transaction. +> Inadequate MIME types, such as zipped files, are not filtered at all. + (Again, only text-based types except plain text). Encrypted SSL data + (from HTTPS servers) cannot be filtered either, since this would violate + the integrity of the secure transaction. In some situations it might + be necessary to protect certain text, like source code, from filtering + by defining appropriate -filter sections.

    At this time, cannot (yet!) uncompress compressed documents. If you want filtering to work on all documents, even those that would normally be sent compressed, use the - prevent-compression - action in conjunction with filterfilter.

    Filtering can achieve some of the same effects as the - block action, i.e. it can be used to block ads and banners. But the mechanism works quite differently. One effective use, is to block ad banners @@ -2724,8 +2536,8 @@ CLASS="SECT3" CLASS="SECT3" >8.5.9. handle-as-image8.5.9. handle-as-image

    This action alone doesn't do anything noticeable. It just marks URLs as images. - If the block action "blocked" - page, or a replacement image (as determined by the set-image-blocker action) will be sent to the client as a substitute for the blocked content.

    Users will probably only want to use the handle-as-image action in conjunction with - block, to block sources of banners, whose URLs don't reflect the file type, like in the second example section.

    Note that you cannot treat HTML pages as images in most cases. For instance, (in-line) ad frames require an HTML page to be sent, or they won't display properly. - Forcing handle-as-imagehandle-as-image in this situation will not replace the ad frame with an image, but lead to error messages.

    8.5.10. hide-forwarded-for-headers8.5.10. hide-forwarded-for-headers

    8.5.11. hide-from-header8.5.11. hide-from-header

    "block" will completely remove the header - (not to be confused with the block action).

    8.5.12. hide-referrer8.5.12. hide-referrer

    - hide-refererhide-referer is an alternate spelling of - hide-referrerhide-referrer and the two can be can be freely substituted with each other. (8.5.13. hide-user-agent8.5.13. hide-user-agent

    8.5.14. kill-popups

    This action is basically a built-in, hardwired special-purpose filter - action, but there are important differences: For kill-popupskill-popups, the document need not be buffered, so it can be incrementally rendered while - downloading. But kill-popupskill-popups doesn't catch as many pop-ups as - filter{filter{all-popupsall-popups} - does and is not as smart as filter{filter{unsolicited-popupsunsolicited-popups} - is.

    Think of it as a fast and efficient replacement for a filter that you can use if you don't want any filtering at all. Note that it doesn't make - sense to combine it with any filter action, - since as soon as one filter applies, the whole document needs to be buffered anyway, which destroys the advantage of - the kill-popupskill-popups action over its filter equivalent.

    Killing all pop-ups unconditionally is problematic. Many shops and banks rely on - pop-ups to display forms, shopping carts etc, and the filter{filter{unsolicited-popupsunsolicited-popups} - does a fairly good job of catching only the unwanted ones.

    windows that appear when you close an other one), you might want to use - filter{{js-annoyances}js-annoyances} instead.

    8.5.15. limit-connect8.5.15. limit-connect

    Notes:

    By default, i.e. if no By default, i.e. if no limit-connectlimit-connect action applies, Privoxy only allows HTTP CONNECT requests to port 443 (the standard, secure HTTPS port). Use - limit-connectlimit-connect if more fine-grained control is desired for some or all destinations.

    8.5.16. prevent-compression8.5.16. prevent-compression

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

    More and more websites send their content compressed by default, which - is generally a good idea and saves bandwidth. But for the filter, , deanimate-gifs - and kill-popups actions to work,

    This will slow down transfers from those websites, though. If you use any of the above-mentioned - actions, you will typically want to use prevent-compressionprevent-compression in conjunction with them.

    Note that some (rare) ill-configured sites don't handle requests for uncompressed - documents correctly (they send an empty document body). If you use prevent-compressionprevent-compression per default, you'll have to add exceptions for those sites. See the example for how to do that.

    8.5.17. send-vanilla-wafer8.5.17. send-vanilla-wafer

    8.5.18. send-wafer8.5.18. send-wafer

    A string of the form ""name=name=valuevalue".

    8.5.19. session-cookies-only8.5.19. session-cookies-only

    Notes:

    This is less strict than 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 badly.

    Most browsers will not permanently store cookies that have been processed by - session-cookies-onlysession-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 @@ -3980,23 +3780,23 @@ CLASS="emphasis" CLASS="EMPHASIS" >no sense at all to use to use session-cookies-onlysession-cookies-only - together with crunch-incoming-cookies or - crunch-outgoing-cookies. If you do, cookies will be plainly killed.

    content-cookies filter to block some types of cookies. Content cookies are not effected by - session-cookies-onlysession-cookies-only.

    8.5.20. set-image-blocker8.5.20. set-image-blocker

    both - block and handle-as-image

    ""target-urltarget-url" to - send a redirect to target-urltarget-url. You can redirect to any image anywhere, even in your local filesystem (via Privoxy-built-in - URLs, which send the built-in images, as target-urltarget-url. This has the same visual effect as specifying

    The URLs for the built-in images are "http://config.privoxy.org/send-banner?type="http://config.privoxy.org/send-banner?type=typetype", where , where typetype is either NOT to be - used in set-image-blockerset-image-blocker, but meant for use from filters

    8.5.21. Summary

    8.5.21. 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 @@ -4337,8 +4127,8 @@ CLASS="SECT2" CLASS="SECT2" >8.6. Aliases8.6. Aliases

    Custom 8.7. Actions Files Tutorial8.7. Actions Files Tutorial

    The above chapters have shown

    8.7.1. default.action

    8.7.1. default.action

    Every config file should start with a short comment stating its purpose:

    The first regular section is probably the most important. It has only one pattern, ""//", but this pattern filter{frameset-borders} \ - +filter{demoronizer} \ @@ -4992,9 +4782,9 @@ CLASS="QUOTE" 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 fragilefragile alias instead of stating the list of actions explicitly:

    FeatureCautiousMediumAdventuresome
    Ad-blocking by URLyesyesyes
    Ad-filtering by sizeyesyesyes
    GIF de-animationnoyesyes
    Referer forgingnoyesyes
    Cookie handlingnonesession-onlykill
    Pop-up killingunsolicitedunsolicitedall
    Fast redirectsnonoyes
    HTML tamingyesyesyes
    JavaScript tamingyesyesyes
    Web-bug killingyesyesyes
    Fun text replacementsnonoyes
    Image tag reorderingnonoyes
    Ad-filtering by linknonoyes
    Demoronizernoyesyes
      +  +name        # enable action name        # enable action namename
    -  -name        # disable action name        # disable action namename
      +  +name{name{param}  # enable action and set parameter to param}  # enable action and set parameter to paramparam,
                    # overwriting parameter from previous match if necessary
    -  -namename         # disable action. The parameter can be omitted
      +  +name{name{param}   # enable action and add param}   # enable action and add paramparam to the list of parameters
    -  -name{name{param}   # remove the parameter param}   # remove the parameter paramparam from the list of parameters
                     # If it was the last one left, disable the action.
    -  -name-name          # disable this action completely and remove all parameters from the list

    The The fast-redirects action, which we enabled per default above, breaks some sites. So disable it for popular sites where we know it misbehaves:

    and - information). 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:

    mark them as images in one go, with the help of our - block-as-imageblock-as-image alias defined above. (We could of - course just as well use +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}{pattern} action before, it still applies and needn't be repeated:

    "blocked" - by the filter{banners-by-size}{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 a bunch of generic patterns, which do most of the work, by @@ -5267,11 +5057,9 @@ count*. >

    You wouldn't believe how many advertisers actually call their banner - servers ads.companycompany.com, or call the directory in which the banners are stored simply

    But being very generic, they necessarily also catch URLs that we don't want - to block. The pattern .*ads..*ads. e.g. catches l.some-provider.net." So here come some - well-known exceptions to the +block section above.

    "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..*ads., an exception to the general non-blocking policy, and suddenly - +block applies. And now, it'll match - .*loads., where .*loads., where -block applies, so (unless it matches again further down) it ends up - with no block action applying.

    "cvs" in them. Note that - -filter disables

    8.7.2. user.action

    8.7.2. 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, @@ -5554,7 +5342,7 @@ CLASS="SCREEN" # These aliases define combinations of actions that are useful for # certain types of sites: # -fragile = -block -crunch-all-cookies -filter -fast-redirects -hide-referer -kill-popups +fragile = -block -crunch-all-cookies -filter -fast-redirects -hide-referrer -kill-popups shop = -crunch-all-cookies allow-popups # Allow ads for selected useful free sites: @@ -5570,9 +5358,9 @@ allow-ads = -block -filter{banners-by-size} -filter{banners-by-link} 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-cookiesallow-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.

    { allow-all-cookies }
    +sourceforge.net
     sunsolve.sun.com
    -slashdot.org
    +.slashdot.org
     .yahoo.com
     .msdn.microsoft.com
     .redhat.com

    Some file types you may not want to filter. - Privoxy makes no distinctions between regular web - pages and downloads done via your web browser if it is an html or text type - document.

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

    # A list of common file extensions that are likely to indicate raw text, and best
    -# if unfiltered.
    -/(.*/)?.*\.(pl|(s|p)?h|c(c|xx|pp)?|tcl|am|init?|cfg?|conf(ig)?|txt|rc|bat)$
    +># Technical documentation is likely to contain strings that might
    +# erroneously get altered by the JavaScript-oriented filters:
    +#
    +.tldp.org
    +/(.*/)?selfhtml/
     
    -# Documentation should not need filtering (at least on some sites).
    -.tldp.org
    "copy image location" and pasted the URL below while removing the leading http://, into a - { +block } section. Note that { +block } section. Note that { +handle-as-image - } need not be specified, since all URLs ending in - .gif.gif will be tagged as images by the general rules as set in default.action anyway:

    block } www.example.com/nasty-ads/sponsor.gif -another.popular.site.net/more/junk/here/ - -# Here we found one that is not in Privoxy's default blocked list: -.adfactory.net

    To force URLs that tend to have ad images, but it is difficult for - 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 know this since the ultimate returned - object is obscured for one reason or another, we can try to force these to be - treated as images (and thus avoid Privoxy's - 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 "BLOCKED" banner page). Note that if what is returned by the - server turns out NOT to be an image, then your browser typically will display - a broken icon image. Use cautiously.

    "broken image" icon by the + browser. Use cautiously.

    { +block-as-image }
    -# A shockwave ad, very annoying.
    -.trip.com/.*\.swf
     .doubleclick.net
     /Realmedia/ads/
    -adremote.
    feedback, so - you just used the fragilefragile alias on the site, and -- whoa! -- it worked. The -- it worked. The fragilefragile aliases disables those actions that are most likely to break a site. Also, good for testing purposes to see if it is

    Note that Note that allow-adsallow-ads has been aliased to - -block, - -filter{banners-by-size}, and - -filter{banners-by-link} above.

    AppendixPrivoxy 3.0.2 User ManualPrivoxy 3.0.3 User Manual14. Appendix14. Appendix

    14.1. Regular Expressions

    14.1. Regular Expressions

    dir command in DOS. - *.**.* matches all filenames. The "special" character here is the asterisk which matches any and all characters. We can be - more specific and use ?? to match just individual characters. So /.*/banners/.*/.*/banners/.* - A simple example @@ -485,9 +485,9 @@ CLASS="QUOTE" CLASS="emphasis" >/.*/adv((er)?ts?|ertis(ing|ements?))?//.*/adv((er)?ts?|ertis(ing|ements?))?/ - @@ -609,9 +609,9 @@ CLASS="QUOTE" CLASS="emphasis" >/.*/advert[0-9]+\.(gif|jpe?g)/.*/advert[0-9]+\.(gif|jpe?g) - Again @@ -744,12 +744,12 @@ CLASS="SECT2" >

    14.2. Privoxy's Internal Pages

    's Internal Pages

    Since

    Short cuts. Turn off, then on:

    14.2.1. Bookmarklets14.2.1. Bookmarklets

    Below are some 14.3. Chain of Events14.3. Chain of Events

    Let's take a quick look at the basic sequence of events when a web page is requested by your browser and 14.4. Anatomy of an Action14.4. Anatomy of an Action

    The way

    Now the page displays ;-) Be sure to flush your browser's caches when - making such changes. Or, try using Shift+ReloadShift+Reload.

    But now what about a situation where we get no explicit matches like diff --git a/doc/webserver/user-manual/config.html b/doc/webserver/user-manual/config.html index a056852b..6e6354c2 100644 --- a/doc/webserver/user-manual/config.html +++ b/doc/webserver/user-manual/config.html @@ -1,13 +1,13 @@ + The Main Configuration FilePrivoxy 3.0.2 User ManualPrivoxy 3.0.3 User Manual7. The Main Configuration File7. The Main Configuration File

    Again, the main configuration file is named

    -

    Assigns the value Assigns the value /etc/privoxy/etc/privoxy to the option - confdirconfdir and thus indicates that the configuration directory is named "/etc/privoxy/".

    All options in the config file except for All options in the config file except for confdirconfdir and - logdirlogdir are optional. Watch out in the below description for what happens if you leave them unset.

    7.1. Configuration and Log File Locations7.1. Configuration and Log File Locations

    7.1.1. confdir7.1.1. confdir

    No trailing ""//", please

    7.1.2. logdir7.1.2. logdir

    No trailing ""//", please

    7.1.3. actionsfile7.1.3. actionsfileType of value:

    File name, relative to File name, relative to confdir, without the confdir, without the .action.action suffix

    Notes:

    Multiple Multiple actionsfileactionsfile lines are permitted, and are in fact recommended!

    7.1.4. filterfile7.1.4. filterfileType of value:

    File name, relative to File name, relative to confdirconfdir

    No textual content filtering takes place, i.e. all - +filter{{name}name} actions in the actions files are turned neutral.

    The - +filter{{name}name} - actions rely on the relevant filter (namename) to be defined in the filter file!

    default.filter
    that contains a bunch of handy filters for common problems is included in the distribution. - See the section on the filter action for a list.

    7.1.5. logfile7.1.5. logfile

    Type of value:

    File name, relative to File name, relative to logdirlogdir

    Effect if unset:

    No log file is used, all log messages go to the console ( No log file is used, all log messages go to the console (STDERRSTDERR).

    The logfile is where all logging and error messages are written. The level - of detail and number of messages are set with the debugdebug option (see below). The logfile can be useful for tracking down a problem with 7.1.6. jarfile7.1.6. jarfile

    Type of value:

    File name, relative to File name, relative to logdirlogdir

    7.1.7. trustfile7.1.7. trustfile

    Type of value:

    File name, relative to File name, relative to confdirconfdir

    Prepending a Prepending a ~~ character limits access to this site only (and any sub-paths within this site), e.g. - ~www.example.com~www.example.com.

    trusted referrers, by - prepending the name with a ++ character. The effect is that access to untrusted sites will be granted -- but only if a link from this trusted referrer was used. The link target will then be added to the @@ -842,15 +836,15 @@ CLASS="QUOTE" >"trustfile" so that future, direct accesses will be granted. Sites added via this mechanism do not become trusted referrers themselves - (i.e. they are added with a ~~ designation).

    If you use the If you use the ++ operator in the trust file, it may grow considerably over time.

    Privoxy be compiled with - the --disable-force, --disable-force, --disable-toggle--disable-toggle and - --disable-editor --disable-editor options, if this feature is to be used.

    7.2. Local Set-up Documentation7.2. Local Set-up Documentation

    If you intend to operate 7.2.1. user-manual7.2.1. user-manual

    http://www.privoxy.org/http://www.privoxy.org/versionversion/user-manual/ - will be used, where versionversion is the Privoxy
      user-manual  file:///usr/share/doc/privoxy-3.0.2/user-manual/
      user-manual  file:///usr/share/doc/privoxy-3.0.3/user-manual/
      user-manual  file:/c:/some-dir/privoxy-3.0.2/user-manual/
      user-manual  file:/c:/some-dir/privoxy-3.0.3/user-manual/
      user-manual  file://///some-server/some-path/privoxy-3.0.2/user-manual/
      user-manual  file://///some-server/some-path/privoxy-3.0.3/user-manual/7.2.2. trust-info-url7.2.2. trust-info-url

    7.2.3. admin-address7.2.3. admin-address

    Notes:

    If both If both admin-address and admin-address and proxy-info-urlproxy-info-url are unset, the whole "Local Privoxy Support" box on all generated pages will not be shown. @@ -1228,8 +1218,8 @@ CLASS="SECT3" CLASS="SECT3" >7.2.4. proxy-info-url7.2.4. proxy-info-url

    Notes:

    If both If both admin-address and admin-address and proxy-info-urlproxy-info-url are unset, the whole "Local Privoxy Support" box on all generated pages will not be shown. @@ -1299,17 +1289,17 @@ CLASS="SECT2" CLASS="SECT2" >7.3. Debugging7.3. Debugging

    These options are mainly useful when tracing a problem. Note that you might also want to invoke Privoxy with the with the --no-daemon--no-daemon command line option when debugging.

    7.3.1. debug7.3.1. debug

    To select multiple debug levels, you can either add them or use - multiple debugdebug lines.

    7.3.2. single-threaded7.3.2. single-threaded

    7.4. Access Control and Security7.4. Access Control and Security

    This section of the config file controls the security-relevant aspects of 7.4.1. listen-address7.4.1. listen-address

    Type of value:

    [[IP-Address]:IP-Address]:PortPort

    Privoxy to untrusted users, you will - also want to turn off the enable-edit-actions and - enable-remote-toggle options!

    7.4.2. toggle7.4.2. toggle

    "toggled off" mode, i.e. behave like a normal, content-neutral proxy where all ad blocking, filtering, etc are disabled. See - enable-remote-toggleenable-remote-toggle below. This is not really useful anymore, since toggling is much easier via 7.4.3. enable-remote-toggle7.4.3. enable-remote-toggle

    "ACLs" and and listen-addresslisten-address above) can toggle it for all users. So this option is 7.4.4. enable-edit-actions7.4.4. enable-edit-actions

    "ACLs" and and listen-addresslisten-address above) can modify its configuration for all users. So this option is 7.4.5. ACLs: permit-access and deny-access7.4.5. ACLs: permit-access and deny-accessType of value:

    src_addr[/src_addr[/src_masklensrc_masklen] - [dst_addr[/dst_addr[/dst_masklendst_masklen]]

    Where Where src_addrsrc_addr and - dst_addrdst_addr are IP addresses in dotted decimal notation or valid - DNS names, and src_masklensrc_masklen and - dst_masklendst_masklen are subnet masks in CIDR notation, i.e. integer values from 2 to 30 representing the length (in bits) of the network address. The masks and the whole destination part are optional. @@ -2026,9 +1996,9 @@ CLASS="EMPHASIS" >Effect if unset:

    Don't restrict access further than implied by Don't restrict access further than implied by listen-addresslisten-address

    Privoxy - talks only to IP addresses that match at least one permit-accesspermit-access line - and don't match any subsequent deny-accessdeny-access line. In other words, the - last match wins, with the default being deny-accessdeny-access.

    If Privoxy is using a forwarder (see is using a forwarder (see forwardforward below) - for a particular destination URL, the dst_addrdst_addr that is examined is the address of the forwarder and

    Explicitly define the default behavior if no ACL and - listen-addresslisten-address are set: "localhost" - is OK. The absence of a dst_addrdst_addr implies that 7.4.6. buffer-limit7.4.6. buffer-limit

    Notes:

    For content filtering, i.e. the For content filtering, i.e. the +filter+filter and - +deanimate-gif+deanimate-gif actions, it is necessary that

    When a document buffer size reaches the When a document buffer size reaches the buffer-limitbuffer-limit, it is flushed to the client unfiltered and no further attempt to filter the rest of the document is made. Remember that there may be multiple threads - running, which might require up to buffer-limitbuffer-limit Kbytes 7.5. Forwarding7.5. Forwarding

    This feature allows routing of HTTP requests through a chain of multiple proxies. @@ -2341,8 +2307,8 @@ CLASS="SECT3" CLASS="SECT3" >7.5.1. forward7.5.1. forward

    Type of value:

    target_patterntarget_pattern - http_parent[:http_parent[:portport]

    where where target_patterntarget_pattern is a URL pattern - that specifies to which requests (i.e. URLs) this forward rule shall apply. Use // to denote "all URLs". - http_parent[:http_parent[:portport] is the DNS name or IP address of the parent HTTP proxy through which the requests should be forwarded, optionally followed by its listening port (default: 8080). - Use a single dot (..) to denote "no forwarding"Notes:

    If If http_parenthttp_parent is "."7.5.2. forward-socks4 and forward-socks4a7.5.2. forward-socks4 and forward-socks4aType of value:

    target_patterntarget_pattern - socks_proxy[:socks_proxy[:portport] - http_parent[:http_parent[:portport]

    where where target_patterntarget_pattern is a URL pattern - that specifies to which requests (i.e. URLs) this forward rule shall apply. Use // to denote "all URLs". - http_parent and http_parent and socks_proxysocks_proxy - are IP addresses in dotted decimal notation or valid DNS names (http_parenthttp_parent may be "no HTTP forwarding"), and the optional - portport parameters are TCP ports, i.e. integer values from 1 to 64535

    Multiple lines are OK, they are checked in sequence, and the last match wins.

    The difference between The difference between forward-socks4 and forward-socks4 and forward-socks4aforward-socks4a is that in the SOCKS 4A protocol, the DNS resolution of the target hostname happens on the SOCKS server, while in SOCKS 4 it happens locally.

    If If http_parenthttp_parent is "."7.5.3. Advanced Forwarding Examples7.5.3. Advanced Forwarding Examples

    If you have links to multiple ISPs that provide various special content only to their subscribers, you can configure multiple squid locally, then chain as - browser -> squid -> privoxybrowser -> squid -> privoxy is the recommended way.

    Assuming that squid's address and port. - Squid normally uses port 3128. If unsure consult http_porthttp_port in squid.conf.

    You could just as well decide to only forward requests for Windows executables through - a virus-scanning parent proxy, say, on antivir.example.comantivir.example.com, port 8010:

    7.6. Windows GUI Options7.6. Windows GUI Options

    "Privoxy" is active. To turn off, set to 0.


       

    -

    will log messages to the console window:


       

    -

    Warning: Setting this to 0 will result in the buffer to grow infinitely and eat up all your memory!


       

    -

    is the maximum number of lines held in the log buffer. See above.


       

    -

    will highlight portions of the log messages with a bold-faced font:


       

    -

    The font used in the console window:


       

    -

    Font size used in the console window:


       

    -

    will appear as a button on the Task bar when minimized:


       

    -

    instead of closing the program (close with the exit option on the File menu).


       

    -

    will disconnect from and hide the command console.


       

    -

    Privoxy Configuration
    Privoxy 3.0.3 User ManualPrivoxy 3.0.3 User ManualPrivoxy 3.0.3 User Manual
    Privoxy 3.0.2 User Manual
    6. Privoxy Configuration Configuration

    All

    6.1. Controlling Privoxy with Your Web Browser

    with Your Web Browser

        Privoxy Menu

            ▪  Documentation @@ -251,8 +251,8 @@ CLASS="SECT2" CLASS="SECT2" >6.2. Configuration Files Overview6.2. Configuration Files Overview

    For Unix, *BSD and Linux, all configuration files are located in ) can be used to re-write the raw page content, including viewable text as well as embedded HTML and JavaScript, and whatever else lurks on any given web page. The filtering jobs are only pre-defined here; - whether to apply them or not is up to the actions files. + whether to apply them or not is up to the actions files. Only one filter + file may be defined.

    All files use the ""##" character to denote a comment (the rest of the line will be ignored) and understand line continuation - through placing a backslash ("\\") as the very last character - in a line. If the ## is preceded by a backslash, it looses - its special function. Placing a ## in front of an otherwise valid configuration line to prevent it from being interpreted is called "commenting out" that line.

    <META NAME="GENERATOR" -CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+ -"><LINK +CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK REL="HOME" -TITLE="Privoxy 3.0.2 User Manual" +TITLE="Privoxy 3.0.3 User Manual" HREF="index.html"><LINK REL="PREVIOUS" TITLE="Templates" @@ -38,7 +38,7 @@ CELLSPACING="0" ><TH COLSPAN="3" ALIGN="center" ->Privoxy 3.0.2 User Manual</TH +>Privoxy 3.0.3 User Manual</TH ></TR ><TR ><TD @@ -75,9 +75,9 @@ CLASS="SECT1" CLASS="SECT1" ><A NAME="CONTACT" -></A >11. Contacting the Developers, Bug Reporting and Feature -Requests</H1 +Requests</A +></H1 ><P > We value your feedback. In fact, we rely on it to improve <SPAN @@ -92,14 +92,14 @@ CLASS="SECT2" CLASS="SECT2" ><A NAME="CONTACT-SUPPORT" -></A ->11.1. Get Support</H2 +>11.1. Get Support</A +></H2 ><P -> For casual users, our support forum at +> For casual users, our <A -HREF="http://sourceforge.net/" +HREF="http://sourceforge.net/tracker/?group_id=11118&atid=211118" TARGET="_top" ->SourceForge</A +>support forum at SourceForge</A > is probably best suited: <A @@ -121,8 +121,8 @@ CLASS="SECT2" CLASS="SECT2" ><A NAME="CONTACT-BUGS" -></A ->11.2. Report Bugs</H2 +>11.2. Report Bugs</A +></H2 ><P > Please report all bugs <SPAN CLASS="emphasis" @@ -186,8 +186,8 @@ CLASS="SECT2" CLASS="SECT2" ><A NAME="CONTACT-FEATURE" -></A ->11.3. Request New Features</H2 +>11.3. Request New Features</A +></H2 ><P > You are welcome to submit ideas on new features or other proposals for improvement through our feature request tracker at @@ -203,8 +203,8 @@ CLASS="SECT2" CLASS="SECT2" ><A NAME="CONTACT-ADS" -></A ->11.4. Report Ads or Other Actions-Related Problems</H2 +>11.4. Report Ads or Other Actions-Related Problems</A +></H2 ><P > Please send feedback on ads that slipped through, innocent images that were blocked, and any other problems relating to the <TT @@ -246,8 +246,8 @@ CLASS="SECT2" CLASS="SECT2" ><A NAME="CONTACT-OTHER" -></A ->11.5. Other</H2 +>11.5. Other</A +></H2 ><P >For any other issues, feel free to use the mailing lists. Technically interested users and people who wish to contribute to the project are also welcome on the developers list! diff --git a/doc/webserver/user-manual/copyright.html b/doc/webserver/user-manual/copyright.html index dddf3ffb..3e0331d4 100644 --- a/doc/webserver/user-manual/copyright.html +++ b/doc/webserver/user-manual/copyright.html @@ -1,13 +1,13 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >Privoxy Copyright, License and History
    Privoxy 3.0.2 User Manual
    12. Privoxy Copyright, License and History Copyright, License and History

    Copyright © 2001 - 2003 by Privoxy Developers Copyright © 2001 - 2004 by Privoxy Developers

    Some source code is based on code Copyright © 1997 by Anonymous Coders @@ -100,9 +100,9 @@ CLASS="SECT2" >

    12.1. License

    12.1. License

    12.2. History12.2. History

    In the beginning, there was the 12.3. Authors12.3. Authors

    Current Developement Team:

     Hal Burgiss (docs)
    - Jon Foster
     Andreas Oesterhelt
     David Schmidt (OS/2, Mac OSX ports)
     

     Johny Agotnes 
     Rodrigo Barbosa (RPM specfiles)
     Moritz Barsnick
    + Brian Dessent
     Mattes Dolak 
    + Jon Foster
     Karsten Hopp (Red Hat)
     Alexander Lazic
     Daniel Leite
    diff --git a/doc/webserver/user-manual/filter-file.html b/doc/webserver/user-manual/filter-file.html index a4d77d83..19642832 100644 --- a/doc/webserver/user-manual/filter-file.html +++ b/doc/webserver/user-manual/filter-file.html @@ -1,13 +1,13 @@ + The Filter File
    Privoxy 3.0.2 User Manual
    9. The Filter File9. The Filter File

    All text substitutions that can be invoked through the - filter action must first be defined in the filter file, which is typically called default.filter and which can be - selected through the filterfile config option.

    Filtering works on any text-based document type, including plain - text, HTML, JavaScript, CSS etc. (all Filtering works on any text-based document type, including + HTML, JavaScript, CSS etc. (all text/*text/* - MIME types). Substitutions are made at the source level, so if - you want to except text/plain). + Substitutions are made at the source level, so if you want to "roll your own" filters, you should be - familiar with HTML syntax.

    "roll + your own" filters, you should be familiar with HTML syntax.

    Just like the keyword FILTER:FILTER:, followed by the filter's .

    Once a filter called Once a filter called namename has been defined in the filter file, it can be invoked by using an action of the form - +filter{{name}name} in any Perl's - s///s/// operator. If you are familiar with Perl, you will find this to be quite intuitive, and may want to look at the PCRS man page for the subtle differences to Perl behaviour. Most notably, the non-standard - option letter UU is supported, which turns the default to ungreedy matching.

    the - s///s/// operator's syntax and

    9.1. Filter File Tutorial

    9.1. Filter File Tutorial

    Now, let's complete our "foo" on each page. For global substitution, - we'll need to add the gg option:

    Following the header line and a comment, you see the job. Note that it uses - | as the delimiter instead of | as the delimiter instead of //, because the pattern contains a forward slash, which would otherwise have to be escaped - by a backslash (\\).

    Now, let's examine the pattern: it starts with the text Now, let's examine the pattern: it starts with the text <script.*<script.* - enclosed in parentheses. Since the dot matches any character, and ** means: text, i.e. it matches the whole page, from the start of the first <script> tag.

    That's more than we want, but the pattern continues: That's more than we want, but the pattern continues: document\.referrerdocument\.referrer matches only the exact string

    But there's still more pattern to go. The next element, again enclosed in parentheses, - is .*</script>. You already know what .*</script>. You already know what .*.* means, so the whole pattern translates to: Match from the start of the first <script> tag in a page to the end of the last <script> tag, provided that the text @@ -464,17 +469,17 @@ CLASS="QUOTE" >

    This is still not the whole story, since we have ignored the options and the parentheses: The portions of the page matched by sub-patterns that are enclosed in parentheses, will be - remembered and be available through the variables $1, $2, ...$1, $2, ... in - the substitute. The UU option switches to ungreedy matching, which means - that the first .*.* in the pattern will only "eat up""document.referrer", and that the second , and that the second .*.* will only span the text up to the "</script>" - tag. Furthermore, the ss option says that the match may span - multiple lines in the page, and the gg option again means that the substitution is global.

    "document.referrer" as as $1$1, and the part following - that string, up to and including the closing tag, as $2$2.

    Now the pattern is deciphered, but wasn't this about substituting things? So - lets look at the substitute: $1"Not Your Business!"$2$1"Not Your Business!"$2 is - easy to read: The text remembered as $1$1, followed by - "Not Your Business!""Not Your Business!" (including - the quotation marks!), followed by the text remembered as $2$2. This produces an exact copy of the original string, with the middle part (the "document.referrer") replaced by ) replaced by "Not Your - Business!".

    The whole job now reads: Replace "document.referrer" by - "Not Your Business!""Not Your Business!" wherever it appears inside a <script> tag. Note that this job won't break JavaScript syntax, since both the original and the replacement are syntactically valid @@ -599,31 +604,31 @@ s/window\.status\s*=\s*(['"]).*?\1/dUmMy=1/ig

    \s\s stands for whitespace characters (space, tab, newline, - carriage return, form feed), so that \s*\s* means: "zero or more whitespace". The . The ? in ? in .*?.*? - makes this matching of arbitrary text ungreedy. (Note that the UU - option is not set). The ['"]['"] construct means: "a single @@ -634,13 +639,13 @@ CLASS="EMPHASIS" >or a double quote". Finally, . Finally, \1\1 is - a backreference to the first parenthesis just like $1$1 above, with the difference that in the "<body>" tags with the dummy word tags with the dummy word nevernever. - Note that the ii option makes the pattern matching case-insensitive. Also note that ungreedy matching alone doesn't always guarantee - a minimal match: In the first parenthesis, we had to use [^>]*[^>]* - instead of .*.* to prevent the match from exceeding the <body> tag if it doesn't contain

    Note the Note the (?!\.com)(?!\.com) part (a so-called negative lookahead) in the job's pattern, which means: Don't match, if the string

    The The xx option in this job turns on extended syntax, and allows for e.g. the liberal use of (non-interpreted!) whitespace for nicer formatting.

    9.2. The Pre-defined Filters9.2. The Pre-defined Filters

    The distribution

  • replaces JavaScript references to the browser's referrer information - with the string "Not Your Business!". This compliments the hide-referrer action on the content level.

  • This filter will undo many common instances of HTML based abuse.

    The The BLINK and BLINK and MARQUEEMARQUEE tags are neutralized (yeah baby!), and browser windows will be created as resizable (as of course they should be!), and will have location, @@ -931,19 +936,19 @@ CLASS="EMPHASIS" >

    Most cookies are set in the HTTP dialogue, where they can be intercepted by the - crunch-incoming-cookies - and crunch-outgoing-cookies actions. But web sites increasingly make use of HTML meta tags and JavaScript to sneak cookies to the browser on the content level. @@ -1026,12 +1031,12 @@ CLASS="EMPHASIS" >

    This is a helper filter that has no value if used alone. It makes the - banners-by-size and banners-by-size and banners-by-linkbanners-by-link (see below) filters more effective and should be enabled together with them.

    This filter translates the MS-only characters into Latin-1 equivalents. It is - safe for general use, and recommended for non-MS platforms. +> This filter translates the MS-only characters into Latin-1 equivalents. + It is not necessary when using MS products, and will cause corruption of + all documents that use 8-bit character sets other than Latin-1. It's mostly + worthwhile for Europeans on non-MS platforms, if wierd garbage characters + sometimes appear on some pages.

    Privoxy 3.0.2 User ManualPrivoxy 3.0.3 User ManualPrivoxy 3.0.2 User ManualPrivoxy 3.0.3 User Manual

    Copyright © 2001 - 2003 by +> © 2001 - 2004 by

    $Id: user-manual.sgml,v 1.123.2.31 2003/03/26 02:03:43 oes Exp $

    $Id: user-manual.sgml,v 1.123.2.39 2004/01/30 22:31:40 oes Exp $

    The User ManualPrivoxy is a web proxy with advanced filtering - capabilities for protecting privacy, filtering web page content, managing + capabilities for protecting privacy, modifying web page content, managing cookies, controlling access, and removing ads, banners, pop-ups and other obnoxious Internet junk.

    6.1. Controlling Privoxy
    8.1. Finding the Right Mix
    8.2. How to Edit
    8.4.1. The Domain Pattern
    8.4.2. The Path Pattern
    8.5.21. Summary
    8.7.1. default.action
    8.7.2. user.action
    9.1. Filter File Tutorial
    12.1. License
    14.2. Privoxy InstallationPrivoxy 3.0.2 User ManualPrivoxy 3.0.3 User Manual2. Installation2. Installation

    2.1. Binary Packages2.1. Binary Packages

    How to install the binary packages depends on your operating system:

    2.1.1. Red Hat, SuSE and Conectiva RPMs2.1.1. Red Hat, SuSE and Conectiva RPMs

    RPMs can be installed with RPMs can be installed with rpm -Uvh privoxy-3.0.2-1.rpmrpm -Uvh privoxy-3.0.3-1.rpm, and will use

    If you have problems with failed dependencies, try rebuilding the SRC RPM: - rpm --rebuild privoxy-3.0.2-1.src.rpmrpm --rebuild privoxy-3.0.3-1.src.rpm. This will use your locally installed libraries and RPM version.

    2.1.2. Debian2.1.2. Debian

    DEBs can be installed with DEBs can be installed with dpkg -i - privoxy_3.0.2-1.deb, and will use - apt-get install privoxy, + and will use /etc/privoxy for the location of configuration - files.

    for the location of + configuration files.

    2.1.3. Windows2.1.3. Windows

    Just double-click the installer, which will guide you through the installation process. You will find the configuration files @@ -223,12 +222,12 @@ CLASS="SECT3" CLASS="SECT3" >2.1.4. Solaris, NetBSD, FreeBSD, HP-UX2.1.4. Solaris, NetBSD, FreeBSD, HP-UX

    Create a new directory, Create a new directory, cdcd to it, then unzip and untar the archive. For the most part, you'll have to figure out where things go.

    2.1.5. OS/22.1.5. OS/2

    First, make sure that no previous installations of 2.1.6. Mac OSX2.1.6. Mac OSX

    Unzip the downloaded file (you can either double-click on the file from the finder, or from the desktop if you downloaded it there). Then, double-click on the package installer icon named - Privoxy.pkgPrivoxy.pkg and follow the installation process. Privoxy will be installed in the folder - /Library/Privoxy/Library/Privoxy. It will start automatically whenever you start up. To prevent it from starting automatically, remove or rename the folder - /Library/StartupItems/Privoxy/Library/StartupItems/Privoxy.

    To start Privoxy by hand, double-click on - StartPrivoxy.commandStartPrivoxy.command in the - /Library/Privoxy/Library/Privoxy folder. Or, type this command in the Terminal:

    2.1.7. AmigaOS2.1.7. AmigaOS

    Copy and then unpack the 2.1.8. Gentoo2.1.8. Gentoo

    Gentoo source packages (Ebuilds) for Privoxy under Gentoo just do - first emerge rsyncemerge rsync to get the latest changes from the - Portage tree. With emerge privoxyemerge privoxy you install the latest version.

    , the documentation is in /usr/share/doc/privoxy-3.0.2/usr/share/doc/privoxy-3.0.3 and the Log directory is in 2.2. Building from Source2.2. Building from Source

    The most convenient way to obtain the the CVS repository or simply download the nightly CVS tarball.

    When building from a source tarball (either release version or nightly CVS tarball

     tar xzvf privoxy-3.0.2-src* [.tgz or .tar.gz]
    - cd privoxy-3.0.2
    tar xzvf privoxy-3.0.3-src* [.tgz or .tar.gz] + cd privoxy-3.0.3, which will contain the source tree.

    You can also check out any Privoxy - "branch", just exchange the current - name with the wanted branch name (Example: v_3_0_branch for the 3.0 cvs - tree).

    It is also strongly recommended to not run Privoxy - as root, and instead it is suggested to create a "privoxy" user - and group for this purpose. See your local documentation for the correct - command line to do this.

    /etc/passwd might then look like:

      privoxy:*:7777:7777:privoxy proxy:/no/home:/no/shell

    And then /etc/group, like:

      privoxy:*:7777:

    Some binary packages may do this for you.

    Then, to build from either unpacked tarball or CVS source:

    Then, in either case, to build from unpacked tarball or CVS source:

    If you have GNU make, you can have the first four steps +> If you have gnu make, you can have the first four steps automatically done for you by just typing:

    in the freshly downloaded or unpacked source directory.

    WARNING: If installing as root, the install will fail - unless another user is specified. configure accepts - --with-user and --with-group options - for setting user and group ownership of the configuration files (which need - to be writable by the daemon). The specified user must already - exist. Or if there is already a privoxy user on the system, and no - user was specified during configure, make install then - will use the privoxy user. When starting Privoxy, - it should be run as this same user that owns the configuration and log - files.

    Alternately, you can specify user and group - on the make command line, but be sure both already exist:

     make -s install  USER=privoxy GROUP=privoxy

    If no group is specified, the install will assume a group - exists with the same name as the specified user.

    The default installation path for make install is - /usr/local. This may of course be customized with - the various ./configure path options. If you are doing - a root install to anywhere else besides /usr/local, be - sure to set the appropriate paths with the correct configure options - (./configure --help).

    If you do install to /usr/local, the install will use - sysconfdir=$prefix/etc/privoxy by default. All other - destinations, and the direct usage of --sysconfdir flag - behave like normal, i.e. will not add the extra privoxy - directory. This is for a safer install, as there may already exist another - program that uses a file with the "config" name, and thus makes - /usr/local/etc cleaner.

    If installing to /usr/local, the docs will go by default - to $prefix/share/doc. But if this directory doesn't - exist, it will then try $prefix/doc and install there before - creating a new $prefix/share/doc just for - Privoxy.

    Again, if the installs goes to /usr/local, the - localstatedir (ie: var/) will default - to /var instead of $prefix/var so - the logs will go to /var/log/privoxy/, and the pid file - will be created in /var/run/privoxy.pid.

    make install will attempt to set the correct values - in config (main configuration file). You may want - to check this to make sure all values are correct. If appropriate, - an init script will be installed, but it is up to the user to determine - how and where to start Privoxy. The init - script should be checked for correct paths and values, if anything other than - a default install is done.

    If install finds previous versions of any configuration files, these will not - be overwritten, and the new ones will be installed with a "new" - extension. You will then need to manually update the installed configuration - files as needed. All template files will be overwritten. If you have - customized, local templates, you should save these first. If a previous - version of Privoxy is already running, you will - have to restart it manually.

    For more detailed instructions on how to build Redhat and SuSE RPMs, Windows self-extracting installers, building on platforms with special requirements etc, please consult the 2.3. Keeping your Installation Up-to-Date2.3. Keeping your Installation Up-to-Date

    As user feedback comes in and development continues, we will make updated versions of both the main , ijbswa-announce@lists.sourceforge.net.

    In order not to loose your personal changes and adjustments when updating - to the latest default.actiondefault.action file we strongly recommend that you use that you use user.actionuser.action for your customization of IntroductionPrivoxy 3.0.2 User ManualPrivoxy 3.0.3 User Manual1. Introduction1. Introduction

    This documentation is included with the current stable version of Privoxy, v.3.0.2.

    , v.3.0.3.

    1.1. Features

    1.1. Features

    In addition to Privoxy 3.0.2 User ManualPrivoxy 3.0.3 User Manual Quickstart to Using PrivoxyPrivoxy 3.0.2 User ManualPrivoxy 3.0.3 User Manual4. Quickstart to Using Privoxy

    Privoxy as HTTP and HTTPS (SSL) proxy by setting the proxy configuration for address of - 127.0.0.1 and port 127.0.0.1 and port 81188118. (Configuration section for more configuration options, and how to customize your installation. - -

  • For easy access to Privoxy's most important controls, drag the provided + Bookmarklets into your browser's + personal toolbar. +

  • Please see the section Contacting the @@ -250,8 +259,8 @@ CLASS="SECT2" CLASS="SECT2" >4.1. Quickstart to Ad Blocking4.1. Quickstart to Ad Blocking

    Ad blocking is but one of

    The actions we need to know about for ad blocking are: The actions we need to know about for ad blocking are: block, , handle-as-image, and - set-image-blocker:

    • block - this action stops any contact between your browser and any URL patterns that match this action's configuration. It can be used for blocking ads, but also anything @@ -405,12 +414,12 @@ CLASS="APPLICATION" >

    • handle-as-image - tells

    • set-image-blocker - tells Privoxy what to display in place of an ad image that has hit a block rule. For this to come into play, the URL must match a - block action somewhere in the configuration, and, it must also match an - handle-as-image action.

    • You should have a section with only - block listed under "Actions:". This will bring up a list of all actions. Find - block near the top, and click in the

    • Now, in the Now, in the block actions section, click the Copy Link Location". - Remove the http://http:// at the beginning of the URL. Then, click See AlsoPrivoxy 3.0.2 User ManualPrivoxy 3.0.3 User Manual13. See Also13. See Also

      Other references and sites of interest to Starting PrivoxyPrivoxy 3.0.2 User ManualPrivoxy 3.0.3 User Manual5. Starting Privoxy

      Before launching

      5.1. Red Hat and Conectiva5.1. Red Hat and Conectiva

      We use a script. Note that Red Hat does not start Privoxy upon booting per default. It will use the file 5.2. Debian5.2. Debian

      We use a script. Note that Debian starts Privoxy upon booting per default. It will use the file @@ -278,8 +278,8 @@ CLASS="SECT2" CLASS="SECT2" >5.3. SuSE5.3. SuSE

      We use a script. It will use the file 5.4. Windows5.4. Windows

      Click on the Privoxy Icon to start Privoxy. If no configuration file is specified on the command line, 5.5. Solaris, NetBSD, FreeBSD, HP-UX and others5.5. Solaris, NetBSD, FreeBSD, HP-UX and others

      Example Unix startup command:

      5.6. OS/25.6. OS/2

      During installation, 5.7. Mac OSX5.7. Mac OSX

      During installation, Privoxy is configured to start automatically when the system restarts. To start Privoxy by hand, - double-click on the StartPrivoxy.commandStartPrivoxy.command icon in the - /Library/Privoxy/Library/Privoxy folder. Or, type this command in the Terminal:

      5.8. AmigaOS5.8. AmigaOS

      Start 5.9. Gentoo5.9. Gentoo

      A script is again used. It will use the file Privoxy is not automatically started at - boot time by default. You can change this with the rc-updaterc-update command.

      5.10. Command Line Options5.10. Command Line Options

      TemplatesPrivoxy 3.0.2 User ManualPrivoxy 3.0.3 User Manual10. Templates10. Templates

      All Not recommended for the casual user). Note that - just like in configuration files, lines starting with ## are ignored when the templates are filled in.

      The place-holders are of the form The place-holders are of the form @name@@name@, and you will find a list of available symbols, which vary from template to template, in the comments at the start of each file. Note that these comments are not @@ -191,12 +191,12 @@ CLASS="SCREEN" >

      If the "unstable" symbol is set, everything in between and including - @if-unstable-start and @if-unstable-start and if-unstable-end@if-unstable-end@ will disappear, leaving nothing but an empty comment:

      There's also an if-then-else construct and an There's also an if-then-else construct and an #include#include mechanism, but you'll sure find out if you are inclined to edit the templates ;-)

      http://config.privoxy.org/send-stylesheethttp://config.privoxy.org/send-stylesheet. This is, of course, locally served by Note to UpgradersPrivoxy 3.0.2 User ManualPrivoxy 3.0.3 User Manual3. Note to Upgraders3. Note to Upgraders

      There are very significant changes from earlier