Update links to the client-tags CGI page
[privoxy.git] / doc / source / p-config.sgml
index d8d9fb3..208887e 100644 (file)
@@ -3,9 +3,9 @@
 
  Purpose     :  Used with other docs and files only.
 
- $Id: p-config.sgml,v 2.104 2014/05/05 09:59:30 fabiankeil Exp $
+ $Id: p-config.sgml,v 2.119 2016/03/30 11:14:46 fabiankeil Exp $
 
- Copyright (C) 2001-2011 Privoxy Developers http://www.privoxy.org/
+ Copyright (C) 2001-2016 Privoxy Developers http://www.privoxy.org/
  See LICENSE.
 
  ========================================================================
  Sample Configuration File for Privoxy &p-version;
 </title>
 <para>
- $Id: p-config.sgml,v 2.104 2014/05/05 09:59:30 fabiankeil Exp $
+ $Id: p-config.sgml,v 2.119 2016/03/30 11:14:46 fabiankeil Exp $
 </para>
 <para>
-Copyright (C) 2001-2013 Privoxy Developers http://www.privoxy.org/
+Copyright (C) 2001-2016 Privoxy Developers http://www.privoxy.org/
 </para>
 
 <para>
@@ -743,13 +743,6 @@ actionsfile
    <para>
     Actions files contain all the per site and per URL configuration for
     ad blocking, cookie management, privacy considerations, etc.
-    There is no point in using <application>Privoxy</application> without at
-    least one actions file.
-   </para>
-   <para>
-    Note that since Privoxy 3.0.7, the complete filename, including the <quote>.action</quote>
-    extension has to be specified.  The syntax change was necessary to be consistent
-    with the other file options and to allow previously forbidden characters.
    </para>
   </listitem>
  </varlistentry>
@@ -886,22 +879,22 @@ actionsfile
    <para>
     Depending on the debug options below, the logfile may be a privacy risk
     if third parties can get access to it. As most users will never look
-    at it, <application>Privoxy</application> 3.0.7 and later only log fatal
-    errors by default.
+    at it, <application>Privoxy</application> only logs fatal errors by default.
    </para>
    <para>
     For most troubleshooting purposes, you will have to change that,
     please refer to the debugging section for details.
    </para>
-   <para>
-    Your logfile will grow indefinitely, and you will probably want to
-    periodically remove it.  On Unix systems, you can do this with a cron job
-    (see <quote>man cron</quote>).
-   </para>
    <para>
     Any log files must be writable by whatever user <application>Privoxy</application>
     is being run as (on Unix, default user id is <quote>privoxy</quote>).
    </para>
+   <para>
+    To prevent the logfile from growing indefinitely, it is recommended to
+    periodically rotate or shorten it. Many operating systems support log
+    rotation out of the box, some require additional software to do it.
+    For details, please refer to the documentation for your operating system.
+   </para>
   </listitem>
  </varlistentry>
 </variablelist>
@@ -1072,12 +1065,6 @@ actionsfile
     so that you will notice when things go wrong. The other levels are
     probably only of interest if you are hunting down a specific problem.
     They can produce a hell of an output (especially 16).
-    <!-- LOL -->
-   </para>
-   <para>
-    &my-app; used to ship with the debug levels recommended above enabled by
-    default, but due to privacy concerns 3.0.7 and later are configured to
-    only log fatal errors.
    </para>
    <para>
     If you are used to the more verbose settings, simply enable the debug lines
@@ -2237,8 +2224,13 @@ forward-socks4, forward-socks4a, forward-socks5 and forward-socks5t</title>
   forward-socks5t   /               127.0.0.1:9050 .
 </screen>
    </para>
-
-    <para>
+   <para>
+    Note that if you got Tor through one of the bundles, you may
+    have to change the port from 9050 to 9150 (or even another one).
+    For details, please check the documentation on the
+    <ulink url="https://torproject.org/">Tor website</ulink>.
+   </para>
+   <para>
     The public <application>Tor</application> network can't be used to
     reach your local network, if you need to access local servers you
     therefore might want to make some exceptions:
@@ -2486,6 +2478,12 @@ forward-socks4, forward-socks4a, forward-socks5 and forward-socks5t</title>
     <application>Privoxy's</application> listening port is reachable
     by the outside or an attacker has access to the pages you visit.
    </para>
+   <para>
+    If you are running Privoxy as intercepting proxy without being
+    able to intercept all client requests you may want to adjust
+    the CGI templates to make sure they don't reference content from
+    config.privoxy.org.
+   </para>
   </listitem>
  </varlistentry>
  <varlistentry>
@@ -3149,15 +3147,13 @@ forward-socks4, forward-socks4a, forward-socks5 and forward-socks5t</title>
   <term>Notes:</term>
   <listitem>
    <para>
-    This is a work-around for Firefox bug 492459:
-    <quote>
-    Websites are no longer rendered if SSL requests for JavaScripts are blocked by a proxy.
-    </quote>
+    This directive was added as a work-around for Firefox bug 492459:
+    <quote>Websites are no longer rendered if SSL requests for JavaScripts are blocked by a proxy.</quote>
     (<ulink url="https://bugzilla.mozilla.org/show_bug.cgi?id=492459"
-       >https://bugzilla.mozilla.org/show_bug.cgi?id=492459</ulink>)
-    As the bug has been fixed for quite some time this option should no longer
-    be needed and will be removed in a future release. Please speak up if you
-    have a reason why the option should be kept around.
+       >https://bugzilla.mozilla.org/show_bug.cgi?id=492459</ulink>),
+    the bug has been fixed for quite some time, but this directive is also useful
+    to make it harder for websites to detect whether or not resources are being
+    blocked.
    </para>
   </listitem>
  </varlistentry>
@@ -3360,6 +3356,156 @@ forward-socks4, forward-socks4a, forward-socks5 and forward-socks5t</title>
 </sect3>
 
 
+<sect3 renderas="sect4" id="client-specific-tag"><title>client-specific-tag</title>
+<variablelist>
+ <varlistentry>
+  <term>Specifies:</term>
+  <listitem>
+   <para>
+    The name of a tag that will always be set for clients that
+    requested it through the webinterface.
+   </para>
+  </listitem>
+ </varlistentry>
+ <varlistentry>
+  <term>Type of value:</term>
+  <listitem>
+   <para>
+    <replaceable>Tag name followed by a description that will be shown in the webinterface</replaceable>
+   </para>
+  </listitem>
+ </varlistentry>
+ <varlistentry>
+  <term>Default value:</term>
+  <listitem>
+   <para>None</para>
+  </listitem>
+ </varlistentry>
+ <varlistentry>
+  <term>Notes:</term>
+  <listitem>
+   <warning>
+   <para>
+    This is an experimental feature. The syntax is likely to change
+    in future versions.
+   </para>
+   </warning>
+   <para>
+    Client-specific tags allow Privoxy admins to create different
+    profiles and let the users chose which one they want without
+    impacting other users.
+   </para>
+   <para>
+    One use case is allowing users to circumvent certain blocks
+    without having to allow them to circumvent all blocks.
+    This is not possible with the
+    <link linkend="enable-remote-toggle">enable-remote-toggle feature</link>
+    because it would bluntly disable all blocks for all users and also affect
+    other actions like filters.
+    It also is set globally which renders it useless in most multi-user setups.
+   </para>
+   <para>
+    After a client-specific tag has been defined with the client-specific-tag
+    directive, action sections can be activated based on the tag by using a
+    <ulink url="actions-file.html#CLIENT-TAG-PATTERN">CLIENT-TAG</ulink> pattern.
+    The CLIENT-TAG pattern is evaluated at the same priority
+    as URL patterns, as a result the last matching pattern wins.
+    Tags that are created based on client or server headers are evaluated
+    later on and can overrule CLIENT-TAG and URL patterns!
+   </para>
+   <para>
+    The tag is set for all requests that come from clients that requested
+    it to be set.
+    Note that "clients" are  differentiated by IP address,
+    if the IP address changes the tag has to be requested again.
+   </para>
+   <para>
+    Clients can request tags to be set by using the CGI interface <ulink
+     url="http://config.privoxy.org/client-tags">http://config.privoxy.org/client-tags</ulink>.
+    The specific tag description is only used on the web page and should
+    be phrased in away that the user understand the effect of the tag.
+   </para>
+  </listitem>
+ </varlistentry>
+ <varlistentry>
+  <term>Examples:</term>
+  <listitem>
+   <para>
+    <screen>
+    # Define a couple of tags, the described effect requires action sections
+    # that are enabled based on CLIENT-TAG patterns.
+    client-specific-tag circumvent-blocks Overrule blocks but do not affect other actions
+    disable-content-filters Disable content-filters but do not affect other actions
+    </screen>
+   </para>
+  </listitem>
+ </varlistentry>
+</variablelist>
+</sect3>
+
+<!--  ~  End section  ~  -->
+
+<sect3 renderas="sect4" id="client-tag-lifetime"><title>client-tag-lifetime</title>
+<variablelist>
+ <varlistentry>
+  <term>Specifies:</term>
+  <listitem>
+   <para>
+    How long a temporarily enabled tag remains enabled.
+   </para>
+  </listitem>
+ </varlistentry>
+ <varlistentry>
+  <term>Type of value:</term>
+  <listitem>
+   <para>
+    <replaceable>Time in seconds.</replaceable>
+   </para>
+  </listitem>
+ </varlistentry>
+ <varlistentry>
+  <term>Default value:</term>
+  <listitem>
+   <para>60</para>
+  </listitem>
+ </varlistentry>
+ <varlistentry>
+  <term>Notes:</term>
+  <listitem>
+   <warning>
+   <para>
+    This is an experimental feature. The syntax is likely to change
+    in future versions.
+   </para>
+   </warning>
+   <para>
+    In case of some tags users may not want to enable them permanently,
+    but only for a short amount of time, for example to circumvent a block
+    that is the result of an overly-broad URL pattern.
+   </para>
+   <para>
+    The CGI interface <ulink
+     url="http://config.privoxy.org/client-tags">http://config.privoxy.org/client-tags</ulink>
+    therefore provides a "enable this tag temporarily" option.
+    If it is used, the tag will be set until the client-tag-lifetime
+    is over.
+   </para>
+  </listitem>
+ </varlistentry>
+ <varlistentry>
+  <term>Examples:</term>
+  <listitem>
+   <para>
+    <screen>
+      # Increase the time to life for temporarily enabled tags to 3 minutes
+      client-tag-lifetime 180
+    </screen>
+   </para>
+  </listitem>
+ </varlistentry>
+</variablelist>
+</sect3>
+
 </sect2>
 
 <!--  ~  End section  ~  -->