<!entity history SYSTEM "history.sgml">
<!entity copyright SYSTEM "copyright.sgml">
<!entity license SYSTEM "license.sgml">
-<!entity p-version "3.0.6">
+<!entity p-version "3.0.7">
<!entity p-status "stable">
<!entity % p-not-stable "IGNORE">
<!entity % p-stable "INCLUDE">
This file belongs into
ijbswa.sourceforge.net:/home/groups/i/ij/ijbswa/htdocs/
- $Id: faq.sgml,v 2.23 2006/10/21 22:19:52 hal9 Exp $
+ $Id: faq.sgml,v 2.26 2007/08/05 15:37:55 fabiankeil Exp $
- Copyright (C) 2001-2006 Privoxy Developers http://privoxy.org
+ Copyright (C) 2001-2007 Privoxy Developers http://privoxy.org
See LICENSE.
Based partially on the Internet Junkbuster FAQ originally written by and
<subscript>
<!-- Completely the wrong markup, but very little is allowed -->
<!-- in this part of an article. FIXME -->
- <link linkend="copyright">Copyright</link> &my-copy; 2001-2006 by
- <ulink url="http://www.privoxy.org">Privoxy Developers</ulink>
+ <link linkend="copyright">Copyright</link> &my-copy; 2001-2007 by
+ <ulink url="http://www.privoxy.org/">Privoxy Developers</ulink>
</subscript>
</pubdate>
-<pubdate>$Id: faq.sgml,v 2.23 2006/10/21 22:19:52 hal9 Exp $</pubdate>
+<pubdate>$Id: faq.sgml,v 2.26 2007/08/05 15:37:55 fabiankeil Exp $</pubdate>
<!--
check every line of every configuration file yourself. You can check every
last bit of source code should you desire. And even if you can't read code,
there should be some comfort in knowing that thousands of other people can,
- and do read it. You can build the software from scratch, if you want, so
- that you know the executable is clean, and that it is
+ and some of them do read it. You can build the software from scratch, if you want,
+ so that you know the executable is clean, and that it is
<emphasis>yours</emphasis>. In fact, we encourage this level of scrutiny. It
is one reason we use &my-app; ourselves.
</para>
warranty? Registration?</title>
<para>
<application>Privoxy</application> is licensed under the <ulink
- url="http://www.gnu.org/copyleft/gpl.html">GNU General Public License (GPL)</ulink>.
+ url="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html">GNU General Public License (GPL) version 2</ulink>.
It is free to use, copy, modify or distribute as you wish under the terms of this
license. Please see the <link linkend="copyright">Copyright</link> section for more
information on the license and copyright. Or the <filename>LICENSE</filename> file
<sect2 renderas="sect3" id="spyware">
<title>Can Privoxy remove spyware? Adware? Viruses?</title>
<para>
- No. &my-app; cannot remove anything. It is not a removal tool. It is a
- preventative. &my-app; can help prevent contact from sites that use such
+ No, at least not reliable enough to trust it. &my-app; is not designed to be
+ a malware removal tool and the default configuration doesn't even try to
+ filter out any malware.
+</para>
+<para>
+ &my-app; could help prevent contact from (known) sites that use such
tactics with appropriate configuration rules, and thus could conceivably
prevent contamination from such sites.
</para>
<sect2 renderas="sect3" id="newconfig"><title>Can I use my old config files?</title>
<para>
- The syntax and purpose of configuration files has remained the same
- throughout the 3.x series. Although each release contains updated,
- <quote>improved</quote> versions and it is recommended to use the newer
- configuration files.
+ The syntax and purpose of configuration files has remained roughly the
+ same throughout the 3.x series, but backwards compatibility is not guaranteed.
+ Also each release contains updated, <quote>improved</quote> versions and it is
+ therefore recommended to use the newer configuration files.
<![%p-newstuff;[
If upgrading from version prior to 3.0.4 the syntax for <literal>fast-redirects</literal>
has changed. See the <ulink url="../user-manual/whatsnew.html">What's New section</ulink>
<para>
Note that in the default configuration, only local users (i.e. those on
<quote>localhost</quote>) can connect to <application>Privoxy</application>,
- so this is not (normally) a security problem.
+ so this is (normally) not a security problem.
</para>
</sect2>
<para>
No, its more complicated than that. This only works with special kinds
- of proxies known as <quote>transparent</quote> proxies (see below).
+ of proxies known as <quote>intercepting</quote> proxies (see below).
</para>
</sect2>
<title>Can Privoxy run as a <quote>transparent
</quote> proxy?</title>
<para>
- No, <application>Privoxy</application> currently does not have this ability,
- though it may be added in a future release. Transparent proxies require
- special handling of the request headers beyond what
- <application>Privoxy</application> is now capable of.
+ The whole idea of Privoxy is to modify client requests
+ and server responses in all sorts of ways and therefore
+ it's not a transparent proxy as described in
+ <ulink url="http://tools.ietf.org/html/rfc2616">RFC 2616</ulink>.
+</para>
+<para>
+ However, some people say <quote>transparent proxy</quote> when they
+ mean <quote>intercepting proxy</quote>. If you are one of them,
+ please read the <ulink url="#intercepting">next entry</ulink>.
</para>
+</sect2>
+
+<sect2 renderas="sect3" id="intercepting">
+<title>Can Privoxy run as a <quote>intercepting</quote> proxy?</title>
<para>
- Chaining <application>Privoxy</application> behind another proxy that has
- this ability should work though.
- See the <ulink
- url="../user-manual/config.html#FORWARDING">forwarding chapter</ulink>
- in the <ulink url="../user-manual/index.html">User Manual</ulink>. As
- a transparent proxy to be used for chaining we suggest Transproxy
- (<ulink url="http://transproxy.sourceforge.net/">http://transproxy.sourceforge.net/</ulink>).
+ <application>Privoxy</application> can't intercept traffic itself,
+ but it can handle requests that where intercepted and redirected
+ with a packet filter (like PF or iptables), as long as the Host
+ header is present.
+</para>
+<para>
+ As the Host header is required by HTTP/1.1 and as most web sites
+ don't work if it isn't set, this limitation shouldn't be a problem.
+</para>
+<para>
+ Please refer to your packet filter's documentation to learn how to
+ intercept and redirect traffic into Privoxy. Afterward you just have
+ to configure Privoxy to
+ <ulink url="../user-manual/config.html#ACCEPT-INTERCEPTED-REQUESTS">accept intercepted requests</ulink>.
</para>
</sect2>
advantage of this layer of trust, and using the data they glean from you and
your browsing habits for their own purposes, and maybe to your potential
detriment. Such sites are using you and storing their data on your system.
- That is why the security conscious watch from whom those cookies come, and why
+ That is why the privacy conscious watch from whom those cookies come, and why
they really <emphasis>need</emphasis> to be there.
</para>
<para>
There are several actions that relate to cookies. The default behavior is to
allow only <quote>session cookies</quote>, which means the cookies only last
for the current browser session. This eliminates most kinds of abuse related
- to cookies. But there may be cases where we want cookies to last.
+ to cookies. But there may be cases where you want cookies to last.
</para>
<para>
To disable all cookie actions, so that cookies are allowed unrestricted,
.example.com</screen>
</para>
<para>
- Place the above in <filename>user.action</filename>. Note some of these may
+ Place the above in <filename>user.action</filename>. Note that some of these may
be off by default anyway, so this might be redundant, but there is no harm
being explicit in what you want to happen. <filename>user.action</filename>
includes an alias for this situation, called
<sect2 renderas="sect3" id="blockall">
<title>How can I remove the <quote>Go There Anyway</quote> link from
the <emphasis>BLOCKED</emphasis> page?</title>
+<para>
+ There is more than one way to do it.
+</para>
<para>
Editing the BLOCKED template page (see above) may dissuade some users, but
this method is easily circumvented. Where you need this level of control, you
<para>
This will create an executable with hard-coded security features so that
&my-app; does not allow easy bypassing of blocked sites, or changing the
- current configuration via any connected user's web browser. Some of these
- features can also be toggled on/off via options in
- <application>Privoxy's</application> main
- <ulink
- url="../user-manual/config.html#ACCESS-CONTROL">config</ulink> file. But
- compiled-in compliance is a much better method of ensuring that a block is
- really a block.
+ current configuration via any connected user's web browser.
</para>
<para>
- Default builds of &my-app; are typically built with these features
- disabled.
+ Note that all of these features can also be toggled on/off via options in
+ <application>Privoxy's</application> main <ulink
+ url="../user-manual/config.html#ACCESS-CONTROL">config</ulink> file which
+ means you don't have to recompile anything.
</para>
</sect2>
url="../user-manual/actions-file.html#FILTER">filter</ulink></literal> or
<literal><ulink
url="../user-manual/actions-file.html#DEANIMATE-GIFS">deanimate-gifs</ulink></literal>
- actions will certainly cause a perceived slowdown, since the entire document
+ actions may cause a perceived slowdown, since the entire document
needs to be buffered before displaying. And on very large documents, filtering may have
some measurable impact. How much depends on the page size, the actual
definition of the filter(s), etc. See below. Most other actions have little
to no impact on speed.
</para>
-<para>
- Also, when filtering is enabled, typically there is a disabling of
- compression, (see <ulink
+<para>
+ Also, when filtering is enabled but zlib support isn't available, compression
+ is often disabled (see <ulink
url="../user-manual/actions-file.html#PREVENT-COMPRESSION">prevent-compression</ulink>).
This can have an impact on speed as well. Again, the page size, etc. will
determine how much of an impact.
to differentiate filterable content because of the MIME type as reported by
the server, or because of some configuration setting that enables/disables
filtering.
-
</para>
</sect2>
</para>
<para>
However, these proxies are called "anonymous" because you don't need
- a password, not because they would offer any real anonymity.
+ to authenticate, not because they would offer any real anonymity.
Most of them will log your IP address and make it available to the
authorities in case you violate the law of the country they run in. In fact
you can't even rule out that some of them only exist to *collect* information
with <ulink url="http://tor.eff.org/">Tor</ulink>,
an <ulink url="http://www.eff.org/">EFF</ulink> supported onion routing system.
The configuration details can be found in
- <ulink url="#TOR">How do I use <application>Privoxy</application> together with <application>Tor</application> section</ulink>
+ <ulink url="#TOR">How do I use <application>Privoxy</application> together
+ with <application>Tor</application> section</ulink>
just below.
</para>
-<!--
-<para>
- There is, however, even in the single-machine case the possibility to make the
- server believe that your machine is in fact a shared proxy serving a large
- LAN, and we are looking into that.
-</para>
- I assume this is about sending fake forward IP addresses?
- David and I looked into it and considered it a waste of time to implement.
- Fabian 2006-09-04
--->
</sect2>
<sect2 renderas="sect3">
configuration and chained it with <application>Tor</application>.
</para>
<para>
- Most of <application>Privoxy's</application> protection can be easily subverted
+ Most of <application>Privoxy's</application> privacy-enhancing features can be easily subverted
by an insecure browser configuration, therefore you should use a browser that can
be configured to only execute code from trusted sites, and be careful which sites you trust.
For example there is no point in having <application>Privoxy</application>
are working, it is time to connect them. As far as <application>Privoxy</application>
is concerned, <application>Tor</application> is just another proxy that can be reached
by socks4 or socks4a. Most likely you are interested in <application>Tor</application>
- to increase your anonymity level, therefore you should use socks4a,
- to make sure <application>Privoxy's</application> DNS requests are
+ to increase your anonymity level, therefore you should use socks4a, to make sure DNS requests are
done through <application>Tor</application> and thus invisible to your local network.
</para>
</screen>
</para>
<para>
- This is enough to reach the Internet, but additionally you should
+ This is enough to reach the Internet, but additionally you might want to
uncomment the following forward rules, to make sure your local network is still
reachable through Privoxy:
</para>
<para>
Unencrypted connections to systems in these address ranges will
be as (un)secure as the local network is, but the alternative is
- that you can't reach the network at all.
- If you also want to be able to reach servers in your local
- network by using their names, you will need additional
- exceptions that look like this:
+ that your browser can't reach the network at all. Then again,
+ that may actually be desired and if you don't know for sure
+ that your browser has to be able to reach the local network,
+ there's no reason to allow it.
+</para>
+<para>
+ If you want your browser to be able to reach servers in your local
+ network by using their names, you will need additional exceptions
+ that look like this:
</para>
<para>
<screen>
</para>
<para>
- <quote>User-Agent</quote> is often used in this way to identify
- the browser, and adjust content accordingly. Changing this now (at least not
- further than removing the OS information) is not recommended, since so many
- sites do look for it. You may get undesirable results by changing just this
- one aspect.
+ The <quote>User-Agent</quote> is sometimes used in this way to identify
+ the browser, and adjust content accordingly.
</para>
<para>
speed up web browsing?</title>
<para>
No, it does not have this ability at all. You want something like
- <ulink url="http://www.squid-cache.org/">Squid</ulink> for this. And, yes,
- before you ask, <application>Privoxy</application> can co-exist
+ <ulink url="http://www.squid-cache.org/">Squid</ulink> or
+ <ulink url="http://www.pps.jussieu.fr/~jch/software/polipo/">Polipo</ulink> for this.
+ And, yes, before you ask, <application>Privoxy</application> can co-exist
with other kinds of proxies like <application>Squid</application>.
See the <ulink url="../user-manual/config.html#FORWARDING">forwarding
chapter</ulink> in the <ulink url="../user-manual/index.html">user
<sect2 renderas="sect3">
<title id="firewall">What about as a firewall? Can Privoxy protect me?</title>
<para>
- Not in the way you mean, or in the way a true firewall can.
- <application>Privoxy</application> can help protect your privacy, but not
- protect you from intrusion attempts. It is, of course, perfectly possible
- and recommended to use <emphasis>both</emphasis>.
+ Not in the way you mean, or in the way some firewall vendors claim they can.
+ <application>Privoxy</application> can help protect your privacy, but can't
+ protect your system from intrusion attempts. It is, of course, perfectly possible
+ to use <emphasis>both</emphasis>.
</para>
</sect2>
<title id="secure">Privoxy runs as a <quote>server</quote>. How
secure is it? Do I need to take any special precautions?</title>
<para>
- There are no known exploits that might affect
- <application>Privoxy</application>. On Unix-like systems,
- <application>Privoxy</application> can run as a non-privileged
- user, which is how we recommend it be run. Also, by default
- <application>Privoxy</application> only listens to requests
- from <quote>localhost</quote> only. The server aspect of
- <application>Privoxy</application> is not itself directly exposed to the
- Internet in this configuration. If you want to have
+ On Unix-like systems, <application>Privoxy</application> can run as a non-privileged
+ user, which is how we recommend it be run. Also, by default
+ <application>Privoxy</application> listens to requests from <quote>localhost</quote>
+ only.
+</para>
+<para>
+ The server aspect of <application>Privoxy</application> is not itself directly
+ exposed to the Internet in this configuration. If you want to have
<application>Privoxy</application> serve as a LAN proxy, this will have to
be opened up to allow for LAN requests. In this case, we'd recommend
you specify only the LAN gateway address, e.g. 192.168.1.1, in the main
<title>When <quote>disabled</quote> is Privoxy totally
out of the picture?</title>
<para>
- No, this just means all filtering and actions are disabled.
+ No, this just means all optional filtering and actions are disabled.
<application>Privoxy</application> is still acting as a proxy, but just not
doing any of the things that <application>Privoxy</application> would
normally be expected to do. It is still a <quote>middle-man</quote> in
configuration is returned to the browser, and the log consequently will show
a <quote>crunch</quote>.
</para>
+<para>
+ Since version 3.0.7, Privoxy will also log the crunch reason.
+ If you are using an older version you might want to upgrade.
+</para>
</sect2>
<sect2 renderas="sect3" id="downloads">
</para>
<para>
<application>Privoxy</application> knows the differences in files according
- to the <quote>Document Type</quote> as reported by the webserver. If this is
+ to the <quote>Content Type</quote> as reported by the webserver. If this is
reported accurately (e.g. <quote>application/zip</quote> for a zip archive),
then <application>Privoxy</application> knows to ignore these where
appropriate. <application>Privoxy</application> potentially can filter HTML
did filter this document type.
</para>
<para>
- In short, filtering is <quote>ON</quote> if a) the Document Type as reported
+ In short, filtering is <quote>ON</quote> if a) the content type as reported
by the webserver is appropriate <emphasis>and</emphasis> 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 <quote>good</quote> and this is
- <quote>bad</quote>. It's the configuration that let's it all happen or not.
+ <quote>bad</quote>. It's the configuration that lets it all happen or not.
</para>
<para>
If you download text files, you probably do not want these to be filtered,
<application>Privoxy</application>. <application>Privoxy</application>
does essentially the same thing, much more elegantly and with much more
flexibility. A large <filename>HOSTS</filename> file, in fact, not only
- duplicates effort, but may get in the way. It is recommended to remove
- such entries from your <filename>HOSTS</filename> file. If you think
+ duplicates effort, but may get in the way and seriously slow down your system.
+ It is recommended to remove such entries from your <filename>HOSTS</filename> file. If you think
your hosts list is neglected by <application>Privoxy's </application>
configuration, consider adding your list to your <filename>user.action</filename> file:
</para>
</para>
</sect2>
+<sect2 renderas="sect3" id="valid">
+<title>Does Privoxy produce <quote>valid</quote> HTML (or XHTML)?</title>
+
+<para>
+ Privoxy generates HTML in both its own <quote>templates</quote>, and possibly
+ whenever there are text substitutions via a &my-app; filter. While this
+ should always conform to the HTML 4.01 specifications, it has not been
+ validated against this or any other standard.
+</para>
+</sect2>
+
+
</sect1>
</title>
<para>
This may also be caused by the <quote>demoronizer</quote> filter,
- in conjunction with a web server that is misreporting a file type. Binary
+ in conjunction with a web server that is misreporting the content type. Binary
files are exempted from <application>Privoxy's</application> filtering
(unless the web server by mistake says the file is something else). Either
upgrade <application>Privoxy</application>, or go to the most recent
<para>
It's probably due to compression. It is a common practice for web servers to
send their content <quote>compressed</quote> in order to speed things up, and
- then let the browser <quote>uncompress</quote> them. &my-app; does not (yet)
- support compression. But we can force the web server to bend to our will ;-)
- So for filtering, make sure you have <ulink
- url="../user-manual/actions-file.html#PREVENT-COMPRESSION">prevent-compression</ulink>
- turned ON!
+ then let the browser <quote>uncompress</quote> them. When compiled with zlib support
+ &my-app; can decompress content before filtering, otherwise you may want to enable
+<ulink
+ url="../user-manual/actions-file.html#PREVENT-COMPRESSION">prevent-compression</ulink>.
</para>
</sect2>
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
$Log: faq.sgml,v $
+Revision 2.26 2007/08/05 15:37:55 fabiankeil
+- Don't claim that thousands of people read our code.
+- Specify the GPL version and link to GPLv2 instead of v3.
+- Note that configuration syntax may change between releases.
+- Mention zlib support.
+- Answer the "transparent proxy" question properly.
+- Add "intercepting proxy" entry.
+- Mention Polipo.
+- Rephrase some other sentences for various reasons.
+
+Revision 2.25 2007/07/18 11:00:34 hal9
+Add misc note about valid mark-up in Privoxy.
+
+Revision 2.24 2006/11/14 01:57:46 hal9
+Dump all docs prior to 3.0.6 release. Various minor changes to faq and user
+manual.
+
Revision 2.23 2006/10/21 22:19:52 hal9
Two new FAQs, a rewrite or two, and some touch ups.