- Bump version and copyright.
[privoxy.git] / doc / source / faq.sgml
index 9857eb3..883e754 100644 (file)
@@ -8,7 +8,7 @@
 <!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">
@@ -26,9 +26,9 @@
                 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>
 
 <!--
 
@@ -405,8 +405,8 @@ Privoxy. Why should I use Privoxy at all?</title>
   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>
@@ -416,7 +416,7 @@ Privoxy. Why should I use Privoxy at all?</title>
 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 
@@ -434,8 +434,12 @@ warranty? Registration?</title>
 <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>
@@ -801,10 +805,10 @@ the differences?</title>
 
 <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> 
@@ -937,7 +941,7 @@ with a browser? Does that not raise security issues?</title>
  <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>
 
@@ -1146,7 +1150,7 @@ and thus avoid individual browser configuration?</title>
 
 <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>
@@ -1155,20 +1159,36 @@ and thus avoid individual browser configuration?</title>
 <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>
@@ -1240,7 +1260,7 @@ and thus avoid individual browser configuration?</title>
  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>
@@ -1257,7 +1277,7 @@ and thus avoid individual browser configuration?</title>
   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,
@@ -1269,7 +1289,7 @@ and thus avoid individual browser configuration?</title>
   .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
@@ -1403,6 +1423,9 @@ and thus avoid individual browser configuration?</title>
 <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
@@ -1417,17 +1440,13 @@ the <emphasis>BLOCKED</emphasis> page?</title>
 <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>
 
@@ -1463,15 +1482,15 @@ has to add extra time to browsing.</title>
  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.
@@ -1507,7 +1526,6 @@ delays in page requests compared to the old Junkbuster. What's wrong?</title>
  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>
 
@@ -1610,7 +1628,7 @@ us help you. Your efforts are not wasted, and we do appreciate them.
 </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
@@ -1621,19 +1639,10 @@ us help you. Your efforts are not wasted, and we do appreciate them.
  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">
@@ -1655,7 +1664,7 @@ us help you. Your efforts are not wasted, and we do appreciate them.
  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>
@@ -1718,8 +1727,7 @@ us help you. Your efforts are not wasted, and we do appreciate them.
  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>
 
@@ -1739,7 +1747,7 @@ us help you. Your efforts are not wasted, and we do appreciate them.
  </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>
@@ -1753,10 +1761,15 @@ us help you. Your efforts are not wasted, and we do appreciate them.
 <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>
@@ -1793,11 +1806,8 @@ content is being altered?</title>
 </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>
@@ -1838,8 +1848,9 @@ content is being altered?</title>
 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
@@ -1850,10 +1861,10 @@ speed up web browsing?</title>
 <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>
 
@@ -1922,14 +1933,14 @@ ads used to be. Why?</title>
 <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 
@@ -1960,7 +1971,7 @@ secure is it? Do I need to take any special precautions?</title>
 <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 
@@ -1993,6 +2004,10 @@ ads, but also its own internal CGI pages. What is a <quote>crunch</quote>?</titl
  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">
@@ -2018,7 +2033,7 @@ from a webserver? FTP server?</title>
 </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
@@ -2035,11 +2050,11 @@ from a webserver? FTP server?</title>
  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,
@@ -2078,8 +2093,8 @@ altered it! Yikes, what is wrong!</title>
  <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>
@@ -2124,6 +2139,18 @@ and related issues?</title>
 </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>
 
 
@@ -2540,7 +2567,7 @@ Why?</title>
 </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
@@ -2661,11 +2688,10 @@ browsing has slowed to a crawl. What gives? </title>
 <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>
 
@@ -2748,6 +2774,23 @@ browsing has slowed to a crawl. What gives? </title>
  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.