9998abf41c12f0f886e59aaabab2d2d5f4039067
[privoxy.git] / doc / webserver / user-manual / actions-file.html
1 <HTML
2 ><HEAD
3 ><TITLE
4 >Actions Files</TITLE
5 ><META
6 NAME="GENERATOR"
7 CONTENT="Modular DocBook HTML Stylesheet Version 1.64
8 "><LINK
9 REL="HOME"
10 TITLE="Privoxy User Manual"
11 HREF="index.html"><LINK
12 REL="PREVIOUS"
13 TITLE="The Main Configuration File"
14 HREF="config.html"><LINK
15 REL="NEXT"
16 TITLE="The Filter File"
17 HREF="filter-file.html"><LINK
18 REL="STYLESHEET"
19 TYPE="text/css"
20 HREF="../p_doc.css"></HEAD
21 ><BODY
22 CLASS="SECT1"
23 BGCOLOR="#EEEEEE"
24 TEXT="#000000"
25 LINK="#0000FF"
26 VLINK="#840084"
27 ALINK="#0000FF"
28 ><DIV
29 CLASS="NAVHEADER"
30 ><TABLE
31 WIDTH="100%"
32 BORDER="0"
33 CELLPADDING="0"
34 CELLSPACING="0"
35 ><TR
36 ><TH
37 COLSPAN="3"
38 ALIGN="center"
39 >Privoxy User Manual</TH
40 ></TR
41 ><TR
42 ><TD
43 WIDTH="10%"
44 ALIGN="left"
45 VALIGN="bottom"
46 ><A
47 HREF="config.html"
48 >Prev</A
49 ></TD
50 ><TD
51 WIDTH="80%"
52 ALIGN="center"
53 VALIGN="bottom"
54 ></TD
55 ><TD
56 WIDTH="10%"
57 ALIGN="right"
58 VALIGN="bottom"
59 ><A
60 HREF="filter-file.html"
61 >Next</A
62 ></TD
63 ></TR
64 ></TABLE
65 ><HR
66 ALIGN="LEFT"
67 WIDTH="100%"></DIV
68 ><DIV
69 CLASS="SECT1"
70 ><H1
71 CLASS="SECT1"
72 ><A
73 NAME="ACTIONS-FILE"
74 >8. Actions Files</A
75 ></H1
76 ><P
77 > The actions files are used to define what actions
78  <SPAN
79 CLASS="APPLICATION"
80 >Privoxy</SPAN
81 > takes for which URLs, and thus determine
82  how ad images, cookies and various other aspects of HTTP content and
83  transactions are handled, and on which sites (or even parts thereof). There 
84  are three such files included with <SPAN
85 CLASS="APPLICATION"
86 >Privoxy</SPAN
87 > (as of 
88  version 2.9.15), with differing purposes:
89  </P
90 ><P
91 >  <P
92 ></P
93 ><UL
94 ><LI
95 ><P
96 >      <TT
97 CLASS="FILENAME"
98 >standard.action</TT
99 > - is used by the web based editor, 
100       to set various pre-defined sets of rules for the default actions section
101       in <TT
102 CLASS="FILENAME"
103 >default.action</TT
104 >. These have increasing levels of
105       aggressiveness <I
106 CLASS="EMPHASIS"
107 >and have no influence on your browsing unless
108       you select them explicitly in the editor</I
109 >. It is not recommend
110       to edit this file.
111     </P
112 ></LI
113 ><LI
114 ><P
115 >     <TT
116 CLASS="FILENAME"
117 >default.action</TT
118 > - is the primary action file 
119      that sets the initial values for all actions. It is intended to 
120      provide a base level of functionality for
121      <SPAN
122 CLASS="APPLICATION"
123 >Privoxy's</SPAN
124 > array of features. So it is 
125      a set of broad rules that should work reasonably well for users everywhere.
126      This is the file that the developers are keeping updated, and making 
127      available to users.
128     </P
129 ></LI
130 ><LI
131 ><P
132 >     <TT
133 CLASS="FILENAME"
134 >user.action</TT
135 > - is intended to be for local site 
136      preferences and exceptions. As an example, if your ISP or your bank
137      has specific requirements, and need special handling, this kind of 
138      thing should go here. This file will not be upgraded.
139     </P
140 ></LI
141 ></UL
142 >
143  </P
144 ><P
145 > The list of actions files to be used are defined in the main configuration 
146  file, and are processed in the order they are defined. The content of these
147  can all be viewed and edited from <A
148 HREF="http://config.privoxy.org/show-status"
149 TARGET="_top"
150 >http://config.privoxy.org/show-status</A
151 >.</P
152 ><P
153 > An actions file typically has multiple sections. If you want to use
154  <SPAN
155 CLASS="QUOTE"
156 >"aliases"</SPAN
157 > in an actions file, you have to place the (optional)
158  <A
159 HREF="actions-file.html#ALIASES"
160 >alias section</A
161 > at the top of that file.
162  Then comes the default set of rules which will apply universally to all
163  sites and pages (be <I
164 CLASS="EMPHASIS"
165 >very careful</I
166 > with using such a
167  universal set in <TT
168 CLASS="FILENAME"
169 >user.action</TT
170 > or any other actions file after 
171  <TT
172 CLASS="FILENAME"
173 >default.action</TT
174 >, because it will override the result
175  from consulting any previous file). And then below that,
176  exceptions to the defined universal policies. You can regard
177  <TT
178 CLASS="FILENAME"
179 >user.action</TT
180 > as an appendix to <TT
181 CLASS="FILENAME"
182 >default.action</TT
183 >,
184  with the advantage that is a separate file, which makes preserving your
185  personal settings across <SPAN
186 CLASS="APPLICATION"
187 >Privoxy</SPAN
188 > upgrades easier.</P
189 ><P
190
191  Actions can be used to block anything you want, including ads, banners, or
192  just some obnoxious URL that you would rather not see. Cookies can be accepted
193  or rejected, or accepted only during the current browser session (i.e. not
194  written to disk), content can be modified, JavaScripts tamed, user-tracking
195  fooled, and much more. See below for a <A
196 HREF="actions-file.html#ACTIONS"
197 >complete list
198  of actions</A
199 >.</P
200 ><DIV
201 CLASS="SECT2"
202 ><H2
203 CLASS="SECT2"
204 ><A
205 NAME="AEN1378"
206 >8.1. Finding the Right Mix</A
207 ></H2
208 ><P
209 > Note that some <A
210 HREF="actions-file.html#ACTIONS"
211 >actions</A
212 >, like cookie suppression
213  or script disabling, may render some sites unusable that rely on these
214  techniques to work properly. Finding the right mix of actions is not always easy and
215  certainly a matter of personal taste. In general, it can be said that the more
216  <SPAN
217 CLASS="QUOTE"
218 >"aggressive"</SPAN
219 > your default settings (in the top section of the
220  actions file) are, the more exceptions for <SPAN
221 CLASS="QUOTE"
222 >"trusted"</SPAN
223 > sites you
224  will have to make later. If, for example, you want to kill popup windows per
225  default, you'll have to make exceptions from that rule for sites that you
226  regularly use and that require popups for actually useful content, like maybe
227  your bank, favorite shop, or newspaper.</P
228 ><P
229 > We have tried to provide you with reasonable rules to start from in the
230  distribution actions files. But there is no general rule of thumb on these
231  things. There just are too many variables, and sites are constantly changing.
232  Sooner or later you will want to change the rules (and read this chapter again :).</P
233 ></DIV
234 ><DIV
235 CLASS="SECT2"
236 ><H2
237 CLASS="SECT2"
238 ><A
239 NAME="AEN1385"
240 >8.2. How to Edit</A
241 ></H2
242 ><P
243 > The easiest way to edit the actions files is with a browser by
244  using our browser-based editor, which can be reached from <A
245 HREF="http://config.privoxy.org/show-status"
246 TARGET="_top"
247 >http://config.privoxy.org/show-status</A
248 >.
249  The editor allows both fine-grained control over every single feature on a
250  per-URL basis, and easy choosing from wholesale sets of defaults like
251  <SPAN
252 CLASS="QUOTE"
253 >"Cautious"</SPAN
254 >, <SPAN
255 CLASS="QUOTE"
256 >"Medium"</SPAN
257 > or <SPAN
258 CLASS="QUOTE"
259 >"Advanced"</SPAN
260 >.</P
261 ><P
262 > If you prefer plain text editing to GUIs, you can of course also directly edit the
263  the actions files. Look at <TT
264 CLASS="FILENAME"
265 >default.action</TT
266 > which is richly
267  commented.</P
268 ></DIV
269 ><DIV
270 CLASS="SECT2"
271 ><H2
272 CLASS="SECT2"
273 ><A
274 NAME="AEN1394"
275 >8.3. How Actions are Applied to URLs</A
276 ></H2
277 ><P
278 > Actions files are divided into sections. There are special sections,
279  like the <SPAN
280 CLASS="QUOTE"
281 >"<A
282 HREF="actions-file.html#ALIASES"
283 >alias</A
284 >"</SPAN
285 > sections which will be discussed later. For now
286  let's concentrate on regular sections: They have a heading line (often split
287  up to multiple lines for readability) which consist of a list of actions,
288  separated by whitespace and enclosed in curly braces. Below that, there
289  is a list of URL patterns, each on a separate line.</P
290 ><P
291 > To determine which actions apply to a request, the URL of the request is
292  compared to all patterns in each action file file. Every time it matches, the list of
293  applicable actions for the URL is incrementally updated, using the heading
294  of the section in which the pattern is located. If multiple matches for
295  the same URL set the same action differently, the last match wins. If not, 
296  the effects are aggregated (e.g. a URL might match both the 
297  <A
298 HREF="actions-file.html#HANDLE-AS-IMAGE"
299 TARGET="_top"
300 ><SPAN
301 CLASS="QUOTE"
302 >"+handle-as-image"</SPAN
303 ></A
304 >
305  and <A
306 HREF="actions-file.html#BLOCK"
307 TARGET="_top"
308 ><SPAN
309 CLASS="QUOTE"
310 >"+block"</SPAN
311 ></A
312 > actions).
313  </P
314 ><P
315 > You can trace this process for any given URL by visiting <A
316 HREF="http://config.privoxy.org/show-url-info"
317 TARGET="_top"
318 >http://config.privoxy.org/show-url-info</A
319 >.</P
320 ><P
321 > More detail on this is provided in the Appendix, <A
322 HREF="appendix.html#ACTIONSANAT"
323 > Anatomy of an Action</A
324 >.</P
325 ></DIV
326 ><DIV
327 CLASS="SECT2"
328 ><H2
329 CLASS="SECT2"
330 ><A
331 NAME="AEN1408"
332 >8.4. Patterns</A
333 ></H2
334 ><P
335 > Generally, a pattern has the form <TT
336 CLASS="LITERAL"
337 >&#60;domain&#62;/&#60;path&#62;</TT
338 >,
339  where both the <TT
340 CLASS="LITERAL"
341 >&#60;domain&#62;</TT
342 > and <TT
343 CLASS="LITERAL"
344 >&#60;path&#62;</TT
345 >
346  are optional. (This is why the pattern <TT
347 CLASS="LITERAL"
348 >/</TT
349 > matches all URLs).</P
350 ><P
351 ></P
352 ><DIV
353 CLASS="VARIABLELIST"
354 ><DL
355 ><DT
356 ><TT
357 CLASS="LITERAL"
358 >www.example.com/</TT
359 ></DT
360 ><DD
361 ><P
362 >    is a domain-only pattern and will match any request to <TT
363 CLASS="LITERAL"
364 >www.example.com</TT
365 >,
366     regardless of which document on that server is requested.
367    </P
368 ></DD
369 ><DT
370 ><TT
371 CLASS="LITERAL"
372 >www.example.com</TT
373 ></DT
374 ><DD
375 ><P
376 >    means exactly the same. For domain-only patterns, the trailing <TT
377 CLASS="LITERAL"
378 >/</TT
379 > may
380     be omitted.
381    </P
382 ></DD
383 ><DT
384 ><TT
385 CLASS="LITERAL"
386 >www.example.com/index.html</TT
387 ></DT
388 ><DD
389 ><P
390 >    matches only the single document <TT
391 CLASS="LITERAL"
392 >/index.html</TT
393 >
394     on <TT
395 CLASS="LITERAL"
396 >www.example.com</TT
397 >.
398    </P
399 ></DD
400 ><DT
401 ><TT
402 CLASS="LITERAL"
403 >/index.html</TT
404 ></DT
405 ><DD
406 ><P
407 >    matches the document <TT
408 CLASS="LITERAL"
409 >/index.html</TT
410 >, regardless of the domain,
411     i.e. on <I
412 CLASS="EMPHASIS"
413 >any</I
414 > web server.
415    </P
416 ></DD
417 ><DT
418 ><TT
419 CLASS="LITERAL"
420 >index.html</TT
421 ></DT
422 ><DD
423 ><P
424 >    matches nothing, since it would be  interpreted as a domain name and
425     there is no top-level domain called <TT
426 CLASS="LITERAL"
427 >.html</TT
428 >.
429    </P
430 ></DD
431 ></DL
432 ></DIV
433 ><DIV
434 CLASS="SECT3"
435 ><H3
436 CLASS="SECT3"
437 ><A
438 NAME="AEN1448"
439 >8.4.1. The Domain Pattern</A
440 ></H3
441 ><P
442 > The matching of the domain part offers some flexible options: if the
443  domain starts or ends with a dot, it becomes unanchored at that end. 
444  For example:</P
445 ><P
446 ></P
447 ><DIV
448 CLASS="VARIABLELIST"
449 ><DL
450 ><DT
451 ><TT
452 CLASS="LITERAL"
453 >.example.com</TT
454 ></DT
455 ><DD
456 ><P
457 >    matches any domain that <I
458 CLASS="EMPHASIS"
459 >ENDS</I
460 > in
461     <TT
462 CLASS="LITERAL"
463 >.example.com</TT
464 >
465    </P
466 ></DD
467 ><DT
468 ><TT
469 CLASS="LITERAL"
470 >www.</TT
471 ></DT
472 ><DD
473 ><P
474 >    matches any domain that <I
475 CLASS="EMPHASIS"
476 >STARTS</I
477 > with
478     <TT
479 CLASS="LITERAL"
480 >www.</TT
481 >
482    </P
483 ></DD
484 ><DT
485 ><TT
486 CLASS="LITERAL"
487 >.example.</TT
488 ></DT
489 ><DD
490 ><P
491 >    matches any domain that <I
492 CLASS="EMPHASIS"
493 >CONTAINS</I
494 > <TT
495 CLASS="LITERAL"
496 >.example.</TT
497 >
498     (Correctly speaking: It matches any FQDN that contains <TT
499 CLASS="LITERAL"
500 >example</TT
501 > as a domain.)
502    </P
503 ></DD
504 ></DL
505 ></DIV
506 ><P
507 > Additionally, there are wild-cards that you can use in the domain names
508  themselves. They work pretty similar to shell wild-cards: <SPAN
509 CLASS="QUOTE"
510 >"*"</SPAN
511 >
512  stands for zero or more arbitrary characters, <SPAN
513 CLASS="QUOTE"
514 >"?"</SPAN
515 > stands for
516  any single character, you can define character classes in square
517  brackets and all of that can be freely mixed:</P
518 ><P
519 ></P
520 ><DIV
521 CLASS="VARIABLELIST"
522 ><DL
523 ><DT
524 ><TT
525 CLASS="LITERAL"
526 >ad*.example.com</TT
527 ></DT
528 ><DD
529 ><P
530 >    matches <SPAN
531 CLASS="QUOTE"
532 >"adserver.example.com"</SPAN
533 >, 
534     <SPAN
535 CLASS="QUOTE"
536 >"ads.example.com"</SPAN
537 >, etc but not <SPAN
538 CLASS="QUOTE"
539 >"sfads.example.com"</SPAN
540 >
541    </P
542 ></DD
543 ><DT
544 ><TT
545 CLASS="LITERAL"
546 >*ad*.example.com</TT
547 ></DT
548 ><DD
549 ><P
550 >    matches all of the above, and then some.
551    </P
552 ></DD
553 ><DT
554 ><TT
555 CLASS="LITERAL"
556 >.?pix.com</TT
557 ></DT
558 ><DD
559 ><P
560 >    matches <TT
561 CLASS="LITERAL"
562 >www.ipix.com</TT
563 >,
564     <TT
565 CLASS="LITERAL"
566 >pictures.epix.com</TT
567 >, <TT
568 CLASS="LITERAL"
569 >a.b.c.d.e.upix.com</TT
570 > etc. 
571    </P
572 ></DD
573 ><DT
574 ><TT
575 CLASS="LITERAL"
576 >www[1-9a-ez].example.c*</TT
577 ></DT
578 ><DD
579 ><P
580 >     matches <TT
581 CLASS="LITERAL"
582 >www1.example.com</TT
583 >, 
584      <TT
585 CLASS="LITERAL"
586 >www4.example.cc</TT
587 >, <TT
588 CLASS="LITERAL"
589 >wwwd.example.cy</TT
590 >, 
591      <TT
592 CLASS="LITERAL"
593 >wwwz.example.com</TT
594 > etc., but <I
595 CLASS="EMPHASIS"
596 >not</I
597
598      <TT
599 CLASS="LITERAL"
600 >wwww.example.com</TT
601 >.
602    </P
603 ></DD
604 ></DL
605 ></DIV
606 ></DIV
607 ><DIV
608 CLASS="SECT3"
609 ><H3
610 CLASS="SECT3"
611 ><A
612 NAME="AEN1510"
613 >8.4.2. The Path Pattern</A
614 ></H3
615 ><P
616 > <SPAN
617 CLASS="APPLICATION"
618 >Privoxy</SPAN
619 > uses Perl compatible regular expressions
620  (through the <A
621 HREF="http://www.pcre.org/"
622 TARGET="_top"
623 >PCRE</A
624 > library) for
625  matching the path.</P
626 ><P
627 > There is an <A
628 HREF="appendix.html#REGEX"
629 >Appendix</A
630 > with a brief quick-start into regular
631  expressions, and full (very technical) documentation on PCRE regex syntax is available on-line
632  at <A
633 HREF="http://www.pcre.org/man.txt"
634 TARGET="_top"
635 >http://www.pcre.org/man.txt</A
636 >.
637  You might also find the Perl man page on regular expressions (<TT
638 CLASS="LITERAL"
639 >man perlre</TT
640 >)
641  useful, which is available on-line at <A
642 HREF="http://www.perldoc.com/perl5.6/pod/perlre.html"
643 TARGET="_top"
644 >http://www.perldoc.com/perl5.6/pod/perlre.html</A
645 >.</P
646 ><P
647 > Note that the path pattern is automatically left-anchored at the <SPAN
648 CLASS="QUOTE"
649 >"/"</SPAN
650 >,
651  i.e. it matches as if it would start with a <SPAN
652 CLASS="QUOTE"
653 >"^"</SPAN
654 > (regular expression speak 
655  for the beginning of a line).</P
656 ><P
657 > Please also note that matching in the path is case
658  <I
659 CLASS="EMPHASIS"
660 >INSENSITIVE</I
661 > by default, but you can switch to case
662  sensitive at any point in the pattern by using the 
663  <SPAN
664 CLASS="QUOTE"
665 >"(?-i)"</SPAN
666 > switch:
667  <TT
668 CLASS="LITERAL"
669 >www.example.com/(?-i)PaTtErN.*</TT
670 > will match only
671  documents whose path starts with <TT
672 CLASS="LITERAL"
673 >PaTtErN</TT
674 > in
675  <I
676 CLASS="EMPHASIS"
677 >exactly</I
678 > this capitalization.</P
679 ></DIV
680 ></DIV
681 ><DIV
682 CLASS="SECT2"
683 ><H2
684 CLASS="SECT2"
685 ><A
686 NAME="ACTIONS"
687 >8.5. Actions</A
688 ></H2
689 ><P
690 > All actions are disabled by default, until they are explicitly enabled
691  somewhere in an actions file. Actions are turned on if preceded with a
692  <SPAN
693 CLASS="QUOTE"
694 >"+"</SPAN
695 >, and turned off if preceded with a <SPAN
696 CLASS="QUOTE"
697 >"-"</SPAN
698 >. So a
699  <TT
700 CLASS="LITERAL"
701 >+action</TT
702 > means <SPAN
703 CLASS="QUOTE"
704 >"do that action"</SPAN
705 >, e.g.
706  <TT
707 CLASS="LITERAL"
708 >+block</TT
709 > means <SPAN
710 CLASS="QUOTE"
711 >"please block URLs that match the
712  following patterns"</SPAN
713 >, and <TT
714 CLASS="LITERAL"
715 >-block</TT
716 > means <SPAN
717 CLASS="QUOTE"
718 >"don't
719  block URLs that match the following patterns, even if <TT
720 CLASS="LITERAL"
721 >+block</TT
722 >
723  previously applied."</SPAN
724 >&#13;</P
725 ><P
726
727  Again, actions are invoked by placing them on a line, enclosed in curly braces and
728  separated by whitespace, like in 
729  <TT
730 CLASS="LITERAL"
731 >{+some-action -some-other-action{some-parameter}}</TT
732 >,
733  followed by a list of URL patterns, one per line, to which they apply.
734  Together, the actions line and the following pattern lines make up a section
735  of the actions file. </P
736 ><P
737
738  There are three classes of actions:</P
739 ><P
740 > <P
741 ></P
742 ><UL
743 ><LI
744 ><P
745 >  
746    Boolean, i.e the action can only be <SPAN
747 CLASS="QUOTE"
748 >"enabled"</SPAN
749 > or
750    <SPAN
751 CLASS="QUOTE"
752 >"disabled"</SPAN
753 >. Syntax:
754   </P
755 ><P
756 >   <TABLE
757 BORDER="0"
758 BGCOLOR="#E0E0E0"
759 WIDTH="90%"
760 ><TR
761 ><TD
762 ><PRE
763 CLASS="SCREEN"
764 >  +<TT
765 CLASS="REPLACEABLE"
766 ><I
767 >name</I
768 ></TT
769 >        # enable action <TT
770 CLASS="REPLACEABLE"
771 ><I
772 >name</I
773 ></TT
774 >
775   -<TT
776 CLASS="REPLACEABLE"
777 ><I
778 >name</I
779 ></TT
780 >        # disable action <TT
781 CLASS="REPLACEABLE"
782 ><I
783 >name</I
784 ></TT
785 ></PRE
786 ></TD
787 ></TR
788 ></TABLE
789 >
790   </P
791 ><P
792 >  
793    Example: <TT
794 CLASS="LITERAL"
795 >+block</TT
796 >
797   </P
798 ></LI
799 ><LI
800 ><P
801 >  
802    Parameterized, where some value is required in order to enable this type of action.
803    Syntax:
804   </P
805 ><P
806 >   <TABLE
807 BORDER="0"
808 BGCOLOR="#E0E0E0"
809 WIDTH="90%"
810 ><TR
811 ><TD
812 ><PRE
813 CLASS="SCREEN"
814 >  +<TT
815 CLASS="REPLACEABLE"
816 ><I
817 >name</I
818 ></TT
819 >{<TT
820 CLASS="REPLACEABLE"
821 ><I
822 >param</I
823 ></TT
824 >}  # enable action and set parameter to <TT
825 CLASS="REPLACEABLE"
826 ><I
827 >param</I
828 ></TT
829 >,
830                # overwriting parameter from previous match if necessary
831   -<TT
832 CLASS="REPLACEABLE"
833 ><I
834 >name</I
835 ></TT
836 >         # disable action. The parameter can be omitted</PRE
837 ></TD
838 ></TR
839 ></TABLE
840 >
841   </P
842 ><P
843 >   Note that if the URL matches multiple positive forms of a parameterized action,
844    the last match wins, i.e. the params from earlier matches are simply ignored.
845   </P
846 ><P
847 >  
848    Example: <TT
849 CLASS="LITERAL"
850 >+hide-user-agent{ Mozilla 1.0 }</TT
851 >
852   </P
853 ></LI
854 ><LI
855 ><P
856 >  
857    Multi-value. These look exactly like parameterized actions,
858    but they behave differently: If the action applies multiple times to the
859    same URL, but with different parameters, <I
860 CLASS="EMPHASIS"
861 >all</I
862 > the parameters
863    from <I
864 CLASS="EMPHASIS"
865 >all</I
866 > matches are remembered. This is used for actions
867    that can be executed for the same request repeatedly, like adding multiple
868    headers, or filtering through multiple filters. Syntax:
869   </P
870 ><P
871 >   <TABLE
872 BORDER="0"
873 BGCOLOR="#E0E0E0"
874 WIDTH="90%"
875 ><TR
876 ><TD
877 ><PRE
878 CLASS="SCREEN"
879 >  +<TT
880 CLASS="REPLACEABLE"
881 ><I
882 >name</I
883 ></TT
884 >{<TT
885 CLASS="REPLACEABLE"
886 ><I
887 >param</I
888 ></TT
889 >}   # enable action and add <TT
890 CLASS="REPLACEABLE"
891 ><I
892 >param</I
893 ></TT
894 > to the list of parameters
895   -<TT
896 CLASS="REPLACEABLE"
897 ><I
898 >name</I
899 ></TT
900 >{<TT
901 CLASS="REPLACEABLE"
902 ><I
903 >param</I
904 ></TT
905 >}   # remove the parameter <TT
906 CLASS="REPLACEABLE"
907 ><I
908 >param</I
909 ></TT
910 > from the list of parameters
911                 # If it was the last one left, disable the action.
912   <TT
913 CLASS="REPLACEABLE"
914 ><I
915 >-name</I
916 ></TT
917 >          # disable this action completely and remove all parameters from the list</PRE
918 ></TD
919 ></TR
920 ></TABLE
921 >
922   </P
923 ><P
924 >  
925    Examples: <TT
926 CLASS="LITERAL"
927 >+add-header{X-Fun-Header: Some text}</TT
928 > and
929    <TT
930 CLASS="LITERAL"
931 >+filter{html-annoyances}</TT
932 >
933   </P
934 ></LI
935 ></UL
936 ></P
937 ><P
938 > If nothing is specified in any actions file, no <SPAN
939 CLASS="QUOTE"
940 >"actions"</SPAN
941 > are
942  taken. So in this case <SPAN
943 CLASS="APPLICATION"
944 >Privoxy</SPAN
945 > would just be a
946  normal, non-blocking, non-anonymizing proxy. You must specifically enable the
947  privacy and blocking features you need (although the provided default actions
948  files will give a good starting point).</P
949 ><P
950 > Later defined actions always over-ride earlier ones.  So exceptions 
951  to any rules you make, should come in the latter part of the file (or 
952  in a file that is processed later when using multiple actions files). For
953  multi-valued actions, the actions are applied in the order they are specified.
954  Actions files are processed in the order they are defined in
955  <TT
956 CLASS="FILENAME"
957 >config</TT
958 > (the default installation has three actions
959  files). It also quite possible for any given URL pattern to match more than
960  one pattern and thus more than one set of actions!</P
961 ><P
962 > The list of valid <SPAN
963 CLASS="APPLICATION"
964 >Privoxy</SPAN
965 > actions are:</P
966 ><DIV
967 CLASS="SECT3"
968 ><H4
969 CLASS="SECT3"
970 ><A
971 NAME="ADD-HEADER"
972 >8.5.1. <I
973 CLASS="EMPHASIS"
974 >+add-header</I
975 ></A
976 ></H4
977 ><P
978 ></P
979 ><DIV
980 CLASS="VARIABLELIST"
981 ><DL
982 ><DT
983 >Type:</DT
984 ><DD
985 ><P
986 >Multi-value.</P
987 ></DD
988 ><DT
989 >Purpose and typical uses:</DT
990 ><DD
991 ><P
992 >    Send a user defined HTTP header to the web server. Can be used to confuse log analysis.
993    </P
994 ></DD
995 ><DT
996 >Possible values:</DT
997 ><DD
998 ><P
999 >    Any value is possible. Validity of the defined HTTP headers is not checked.
1000     It is recommended that you use the <SPAN
1001 CLASS="QUOTE"
1002 >"<TT
1003 CLASS="LITERAL"
1004 >X-</TT
1005 >"</SPAN
1006 > prefix
1007     for custom headers.
1008    </P
1009 ></DD
1010 ><DT
1011 >Example usage:</DT
1012 ><DD
1013 ><P
1014 CLASS="LITERALLAYOUT"
1015 >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
1016 CLASS="EMPHASIS"
1017 >{+add-header{X-User-Tracking: sucks}}</I
1018 ><br>
1019 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
1020 CLASS="EMPHASIS"
1021 >.example.com</I
1022 ></P
1023 ></DD
1024 ><DT
1025 >Notes:</DT
1026 ><DD
1027 ><P
1028 >    This action may be specified multiple times, in order to define multiple 
1029     headers. This is rarely needed for the typical user. If you don't know what 
1030     <SPAN
1031 CLASS="QUOTE"
1032 >"HTTP headers"</SPAN
1033 > are, you definitely don't need to worry about this 
1034     one.
1035    </P
1036 ></DD
1037 ></DL
1038 ></DIV
1039 ></DIV
1040 ><DIV
1041 CLASS="SECT3"
1042 ><H4
1043 CLASS="SECT3"
1044 ><A
1045 NAME="BLOCK"
1046 >8.5.2. <I
1047 CLASS="EMPHASIS"
1048 >+block</I
1049 ></A
1050 ></H4
1051 ><P
1052 ></P
1053 ><DIV
1054 CLASS="VARIABLELIST"
1055 ><DL
1056 ><DT
1057 >Type:</DT
1058 ><DD
1059 ><P
1060 >Boolean.</P
1061 ></DD
1062 ><DT
1063 >Purpose and typical uses:</DT
1064 ><DD
1065 ><P
1066 >    Requests for URLs to which this action applies are blocked, i.e. the requests are not
1067     forwarded to the remote server, but answered locally with a substitute page or image,
1068     as determined by the <A
1069 HREF="actions-file.html#HANDLE-AS-IMAGE"
1070 >handle-as-image</A
1071 > and  
1072     <A
1073 HREF="actions-file.html#SET-IMAGE-BLOCKER"
1074 >set-image-blocker</A
1075 > actions.
1076     It is typically used to block ads or other obnoxious content.    
1077    </P
1078 ></DD
1079 ><DT
1080 >Possible values:</DT
1081 ><DD
1082 ><P
1083 >N/A</P
1084 ></DD
1085 ><DT
1086 >Example usage:</DT
1087 ><DD
1088 ><P
1089 CLASS="LITERALLAYOUT"
1090 >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
1091 CLASS="EMPHASIS"
1092 >{+block}</I
1093 ><br>
1094 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
1095 CLASS="EMPHASIS"
1096 >.banners.example.com</I
1097 ><br>
1098 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
1099 CLASS="EMPHASIS"
1100 >.ads.r.us</I
1101 ><br>
1102 &nbsp;&nbsp;&nbsp;&nbsp;</P
1103 ></DD
1104 ><DT
1105 >Notes:</DT
1106 ><DD
1107 ><P
1108 >    If a URL matches one of the blocked patterns, <SPAN
1109 CLASS="APPLICATION"
1110 >Privoxy</SPAN
1111 >
1112     will intercept the URL and display its special <SPAN
1113 CLASS="QUOTE"
1114 >"BLOCKED"</SPAN
1115 > page
1116     instead. If there is sufficient space, a large red banner will appear with
1117     a friendly message about why the page was blocked, and a way to go there
1118     anyway. If there is insufficient space a smaller <SPAN
1119 CLASS="QUOTE"
1120 >"BLOCKED"</SPAN
1121 >
1122     page will appear without the red banner. 
1123     <A
1124 HREF="http://ads.bannerserver.example.com/nasty-ads/sponsor.html"
1125 TARGET="_top"
1126 >Click here</A
1127 >
1128     to view the default blocked HTML page (<SPAN
1129 CLASS="APPLICATION"
1130 >Privoxy</SPAN
1131 > must be running 
1132     for this to work as intended!).
1133    </P
1134 ><P
1135
1136     A very important exception is if the URL <I
1137 CLASS="EMPHASIS"
1138 >matches both</I
1139 >
1140     <SPAN
1141 CLASS="QUOTE"
1142 >"+block"</SPAN
1143 > and <A
1144 HREF="actions-file.html#HANDLE-AS-IMAGE"
1145 TARGET="_top"
1146 ><SPAN
1147 CLASS="QUOTE"
1148 >"+handle-as-image"</SPAN
1149 ></A
1150 >,
1151     then it will be handled by 
1152     <A
1153 HREF="actions-file.html#SET-IMAGE-BLOCKER"
1154 TARGET="_top"
1155 ><SPAN
1156 CLASS="QUOTE"
1157 >"+set-image-blocker"</SPAN
1158 ></A
1159 >
1160     (see below). It is important to understand this process, in order 
1161     to understand how <SPAN
1162 CLASS="APPLICATION"
1163 >Privoxy</SPAN
1164 > is able to deal with 
1165     ads and other objectionable content.
1166    </P
1167 ><P
1168 >    The <A
1169 HREF="actions-file.html#FILTER"
1170 TARGET="_top"
1171 ><SPAN
1172 CLASS="QUOTE"
1173 >"+filter"</SPAN
1174 ></A
1175 >
1176     action can also perform some of the 
1177     same functionality as <SPAN
1178 CLASS="QUOTE"
1179 >"+block"</SPAN
1180 >, but by virtue of very 
1181     different programming techniques, and is most often used for different 
1182     reasons.
1183    </P
1184 ></DD
1185 ></DL
1186 ></DIV
1187 ></DIV
1188 ><DIV
1189 CLASS="SECT3"
1190 ><H4
1191 CLASS="SECT3"
1192 ><A
1193 NAME="DEANIMATE-GIFS"
1194 >8.5.3. <I
1195 CLASS="EMPHASIS"
1196 >+deanimate-gifs</I
1197 ></A
1198 ></H4
1199 ><P
1200 ></P
1201 ><DIV
1202 CLASS="VARIABLELIST"
1203 ><DL
1204 ><DT
1205 >Type:</DT
1206 ><DD
1207 ><P
1208 >Parameterized.</P
1209 ></DD
1210 ><DT
1211 >Typical uses:</DT
1212 ><DD
1213 ><P
1214 >    To stop those annoying, distracting animated GIF images.
1215    </P
1216 ></DD
1217 ><DT
1218 >Possible values:</DT
1219 ><DD
1220 ><P
1221 >    <SPAN
1222 CLASS="QUOTE"
1223 >"last"</SPAN
1224 > or <SPAN
1225 CLASS="QUOTE"
1226 >"first"</SPAN
1227 >
1228    </P
1229 ></DD
1230 ><DT
1231 >Example usage:</DT
1232 ><DD
1233 ><P
1234 CLASS="LITERALLAYOUT"
1235 >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
1236 CLASS="EMPHASIS"
1237 >{+deanimate-gifs{last}}</I
1238 ><br>
1239 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
1240 CLASS="EMPHASIS"
1241 >.example.com</I
1242 ><br>
1243 &nbsp;&nbsp;&nbsp;&nbsp;</P
1244 ></DD
1245 ><DT
1246 >Notes:</DT
1247 ><DD
1248 ><P
1249 >    De-animate all animated GIF images, i.e. reduce them to their last frame.
1250     This will also shrink the images considerably (in bytes, not pixels!). If
1251     the option <SPAN
1252 CLASS="QUOTE"
1253 >"first"</SPAN
1254 > is given, the first frame of the animation
1255     is used as the replacement. If <SPAN
1256 CLASS="QUOTE"
1257 >"last"</SPAN
1258 > is given, the last
1259     frame of the animation is used instead, which probably makes more sense for
1260     most banner animations, but also has the risk of not showing the entire
1261     last frame (if it is only a delta to an earlier frame).
1262    </P
1263 ></DD
1264 ></DL
1265 ></DIV
1266 ></DIV
1267 ><DIV
1268 CLASS="SECT3"
1269 ><H4
1270 CLASS="SECT3"
1271 ><A
1272 NAME="DOWNGRADE-HTTP-VERSION"
1273 >8.5.4. <I
1274 CLASS="EMPHASIS"
1275 >+downgrade-http-version</I
1276 ></A
1277 ></H4
1278 ><P
1279 ></P
1280 ><DIV
1281 CLASS="VARIABLELIST"
1282 ><DL
1283 ><DT
1284 >Type:</DT
1285 ><DD
1286 ><P
1287 >Boolean.</P
1288 ></DD
1289 ><DT
1290 >Typical uses:</DT
1291 ><DD
1292 ><P
1293 >    <SPAN
1294 CLASS="QUOTE"
1295 >"+downgrade-http-version"</SPAN
1296 > will downgrade HTTP/1.1 client requests to
1297     HTTP/1.0 and downgrade the responses as well.
1298    </P
1299 ></DD
1300 ><DT
1301 >Possible values:</DT
1302 ><DD
1303 ><P
1304 >    N/A
1305    </P
1306 ></DD
1307 ><DT
1308 >Example usage:</DT
1309 ><DD
1310 ><P
1311 CLASS="LITERALLAYOUT"
1312 >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
1313 CLASS="EMPHASIS"
1314 >{+downgrade-http-version}</I
1315 ><br>
1316 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
1317 CLASS="EMPHASIS"
1318 >.example.com</I
1319 ><br>
1320 &nbsp;&nbsp;&nbsp;&nbsp;</P
1321 ></DD
1322 ><DT
1323 >Notes:</DT
1324 ><DD
1325 ><P
1326 >    Use this action for servers that use HTTP/1.1 protocol features that
1327     <SPAN
1328 CLASS="APPLICATION"
1329 >Privoxy</SPAN
1330 > doesn't handle well yet. HTTP/1.1 is
1331     only partially implemented. Default is not to downgrade requests. This is
1332     an infrequently needed action, and is used to help with rare problem sites only.
1333    </P
1334 ></DD
1335 ></DL
1336 ></DIV
1337 ></DIV
1338 ><DIV
1339 CLASS="SECT3"
1340 ><H4
1341 CLASS="SECT3"
1342 ><A
1343 NAME="FAST-REDIRECTS"
1344 >8.5.5. <I
1345 CLASS="EMPHASIS"
1346 >+fast-redirects</I
1347 ></A
1348 ></H4
1349 ><P
1350 ></P
1351 ><DIV
1352 CLASS="VARIABLELIST"
1353 ><DL
1354 ><DT
1355 >Type:</DT
1356 ><DD
1357 ><P
1358 >Boolean.</P
1359 ></DD
1360 ><DT
1361 >Typical uses:</DT
1362 ><DD
1363 ><P
1364 >    The <SPAN
1365 CLASS="QUOTE"
1366 >"+fast-redirects"</SPAN
1367 > action enables interception of 
1368     <SPAN
1369 CLASS="QUOTE"
1370 >"redirect"</SPAN
1371 > requests from one server to another, which 
1372     are used to track users.<SPAN
1373 CLASS="APPLICATION"
1374 >Privoxy</SPAN
1375 > can cut off
1376     all but the last valid URL in a redirect request and send a local redirect
1377     back to your browser without contacting the intermediate site(s).
1378    </P
1379 ></DD
1380 ><DT
1381 >Possible values:</DT
1382 ><DD
1383 ><P
1384 >    N/A
1385    </P
1386 ></DD
1387 ><DT
1388 >Example usage:</DT
1389 ><DD
1390 ><P
1391 CLASS="LITERALLAYOUT"
1392 >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
1393 CLASS="EMPHASIS"
1394 >{+fast-redirects}</I
1395 ><br>
1396 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
1397 CLASS="EMPHASIS"
1398 >.example.com</I
1399 ><br>
1400 &nbsp;&nbsp;&nbsp;&nbsp;</P
1401 ></DD
1402 ><DT
1403 >Notes:</DT
1404 ><DD
1405 ><P
1406 >  
1407     Many sites, like yahoo.com, don't just link to other sites. Instead, they
1408     will link to some script on their own server, giving the destination as a
1409     parameter, which will then redirect you to the final target. URLs
1410     resulting from this scheme typically look like:
1411     <I
1412 CLASS="EMPHASIS"
1413 >http://some.place/some_script?http://some.where-else</I
1414 >.
1415   </P
1416 ><P
1417 >    Sometimes, there are even multiple consecutive redirects encoded in the
1418     URL. These redirections via scripts make your web browsing more traceable,
1419     since the server from which you follow such a link can see where you go
1420     to. Apart from that, valuable bandwidth and time is wasted, while your
1421     browser ask the server for one redirect after the other. Plus, it feeds
1422     the advertisers.
1423    </P
1424 ><P
1425 >    This is a normally <SPAN
1426 CLASS="QUOTE"
1427 >"on"</SPAN
1428 > feature, and often requires exceptions
1429     for sites that are sensitive to defeating this mechanism.
1430    </P
1431 ></DD
1432 ></DL
1433 ></DIV
1434 ></DIV
1435 ><DIV
1436 CLASS="SECT3"
1437 ><H4
1438 CLASS="SECT3"
1439 ><A
1440 NAME="FILTER"
1441 >8.5.6. <I
1442 CLASS="EMPHASIS"
1443 >+filter</I
1444 ></A
1445 ></H4
1446 ><P
1447 ></P
1448 ><DIV
1449 CLASS="VARIABLELIST"
1450 ><DL
1451 ><DT
1452 >Type:</DT
1453 ><DD
1454 ><P
1455 >Parameterized.</P
1456 ></DD
1457 ><DT
1458 >Typical uses:</DT
1459 ><DD
1460 ><P
1461 >    Apply page filtering as defined by named sections of the
1462     <TT
1463 CLASS="FILENAME"
1464 >default.filter</TT
1465 > file to the specified site(s). 
1466     <SPAN
1467 CLASS="QUOTE"
1468 >"Filtering"</SPAN
1469 > can be any modification of the raw 
1470     page content, including re-writing or deletion of content.
1471    </P
1472 ></DD
1473 ><DT
1474 >Possible values:</DT
1475 ><DD
1476 ><P
1477 >    <SPAN
1478 CLASS="QUOTE"
1479 >"+filter"</SPAN
1480 > must include the name of one of the section identifiers
1481     from <TT
1482 CLASS="FILENAME"
1483 >default.filter</TT
1484 > (or whatever
1485     <I
1486 CLASS="EMPHASIS"
1487 >filterfile</I
1488 > is specified in <TT
1489 CLASS="FILENAME"
1490 >config</TT
1491 >).
1492    </P
1493 ></DD
1494 ><DT
1495 >Example usage (from the current <TT
1496 CLASS="FILENAME"
1497 >default.filter</TT
1498 >):</DT
1499 ><DD
1500 ><P
1501 ></P
1502 ><TABLE
1503 BORDER="0"
1504 ><TBODY
1505 ><TR
1506 ><TD
1507 >    <A
1508 NAME="FILTER-HTML-ANNOYANCES"
1509 ></A
1510 >
1511     <I
1512 CLASS="EMPHASIS"
1513 >+filter{html-annoyances}</I
1514 >:  Get rid of particularly annoying HTML abuse.
1515    </TD
1516 ></TR
1517 ></TBODY
1518 ></TABLE
1519 ><P
1520 ></P
1521 ><P
1522 ></P
1523 ><TABLE
1524 BORDER="0"
1525 ><TBODY
1526 ><TR
1527 ><TD
1528 >    <A
1529 NAME="FILTER-JS-ANNOYANCES"
1530 ></A
1531 >
1532     <I
1533 CLASS="EMPHASIS"
1534 >+filter{js-annoyances}</I
1535 >:    Get rid of particularly annoying JavaScript abuse
1536    </TD
1537 ></TR
1538 ></TBODY
1539 ></TABLE
1540 ><P
1541 ></P
1542 ><P
1543 ></P
1544 ><TABLE
1545 BORDER="0"
1546 ><TBODY
1547 ><TR
1548 ><TD
1549 >    <A
1550 NAME="FILTER-CONTENT-COOKIES"
1551 ></A
1552 >
1553     <I
1554 CLASS="EMPHASIS"
1555 >+filter{content-cookies}</I
1556 >:   Kill cookies that come in the HTML or JS content 
1557    </TD
1558 ></TR
1559 ></TBODY
1560 ></TABLE
1561 ><P
1562 ></P
1563 ><P
1564 ></P
1565 ><TABLE
1566 BORDER="0"
1567 ><TBODY
1568 ><TR
1569 ><TD
1570 >    <A
1571 NAME="FILTER-POPUPS"
1572 ></A
1573 >
1574     <I
1575 CLASS="EMPHASIS"
1576 >+filter{popups}</I
1577 >:         Kill all popups in JS and HTML
1578    </TD
1579 ></TR
1580 ></TBODY
1581 ></TABLE
1582 ><P
1583 ></P
1584 ><P
1585 ></P
1586 ><TABLE
1587 BORDER="0"
1588 ><TBODY
1589 ><TR
1590 ><TD
1591 >    <A
1592 NAME="FILTER-FRAMESET-BORDERS"
1593 ></A
1594 >
1595     <I
1596 CLASS="EMPHASIS"
1597 >+filter{frameset-borders}</I
1598 >: Give frames a border and make them resizable 
1599    </TD
1600 ></TR
1601 ></TBODY
1602 ></TABLE
1603 ><P
1604 ></P
1605 ><P
1606 ></P
1607 ><TABLE
1608 BORDER="0"
1609 ><TBODY
1610 ><TR
1611 ><TD
1612 >    <A
1613 NAME="FILTER-WEBBUGS"
1614 ></A
1615 >
1616     <I
1617 CLASS="EMPHASIS"
1618 >+filter{webbugs}</I
1619 >:          Squish WebBugs (1x1 invisible GIFs used for user tracking)
1620    </TD
1621 ></TR
1622 ></TBODY
1623 ></TABLE
1624 ><P
1625 ></P
1626 ><P
1627 ></P
1628 ><TABLE
1629 BORDER="0"
1630 ><TBODY
1631 ><TR
1632 ><TD
1633 >    <A
1634 NAME="FILTER-REFRESH-TAGS"
1635 ></A
1636 >
1637     <I
1638 CLASS="EMPHASIS"
1639 >+filter{refresh-tags}</I
1640 >:     Kill automatic refresh tags (for dial-on-demand setups) 
1641    </TD
1642 ></TR
1643 ></TBODY
1644 ></TABLE
1645 ><P
1646 ></P
1647 ><P
1648 ></P
1649 ><TABLE
1650 BORDER="0"
1651 ><TBODY
1652 ><TR
1653 ><TD
1654 >    <A
1655 NAME="FILTER-FUN"
1656 ></A
1657 >
1658     <I
1659 CLASS="EMPHASIS"
1660 >+filter{fun}</I
1661 >:              Text replacements  for subversive browsing fun!
1662    </TD
1663 ></TR
1664 ></TBODY
1665 ></TABLE
1666 ><P
1667 ></P
1668 ><P
1669 ></P
1670 ><TABLE
1671 BORDER="0"
1672 ><TBODY
1673 ><TR
1674 ><TD
1675 >    <A
1676 NAME="FILTER-NIMDA"
1677 ></A
1678 >
1679     <I
1680 CLASS="EMPHASIS"
1681 >+filter{nimda}</I
1682 >:            Remove Nimda (virus) code.
1683    </TD
1684 ></TR
1685 ></TBODY
1686 ></TABLE
1687 ><P
1688 ></P
1689 ><P
1690 ></P
1691 ><TABLE
1692 BORDER="0"
1693 ><TBODY
1694 ><TR
1695 ><TD
1696 >    <A
1697 NAME="FILTER-BANNERS-BY-SIZE"
1698 ></A
1699 >
1700     <I
1701 CLASS="EMPHASIS"
1702 >+filter{banners-by-size}</I
1703 >:  Kill banners by size (<I
1704 CLASS="EMPHASIS"
1705 >very</I
1706 > efficient!)
1707    </TD
1708 ></TR
1709 ></TBODY
1710 ></TABLE
1711 ><P
1712 ></P
1713 ><P
1714 ></P
1715 ><TABLE
1716 BORDER="0"
1717 ><TBODY
1718 ><TR
1719 ><TD
1720 >    <A
1721 NAME="FILTER-SHOCKWAVE-FLASH"
1722 ></A
1723 >
1724     <I
1725 CLASS="EMPHASIS"
1726 >+filter{shockwave-flash}</I
1727 >:   Kill embedded Shockwave Flash objects
1728    </TD
1729 ></TR
1730 ></TBODY
1731 ></TABLE
1732 ><P
1733 ></P
1734 ><P
1735 ></P
1736 ><TABLE
1737 BORDER="0"
1738 ><TBODY
1739 ><TR
1740 ><TD
1741 >    <A
1742 NAME="FILTER-CRUDE-PARENTAL"
1743 ></A
1744 >
1745     <I
1746 CLASS="EMPHASIS"
1747 >+filter{crude-parental}</I
1748 >:   Kill all web pages that contain the words "sex" or "warez"
1749    </TD
1750 ></TR
1751 ></TBODY
1752 ></TABLE
1753 ><P
1754 ></P
1755 ></DD
1756 ><DT
1757 >Notes:</DT
1758 ><DD
1759 ><P
1760 >    This is potentially a very powerful feature! And requires a knowledge 
1761     of regular expressions if you want to <SPAN
1762 CLASS="QUOTE"
1763 >"roll your own"</SPAN
1764 >.
1765     Filtering operates on a line by line basis throughout the entire page.
1766    </P
1767 ><P
1768 >    Filtering requires buffering the page content, which may appear to
1769     slow down page rendering since nothing is displayed until all content has
1770     passed the filters. (It does not really take longer, but seems that way
1771     since the page is not incrementally displayed.) This effect will be more
1772     noticeable on slower connections.
1773    </P
1774 ><P
1775 >    Filtering can achieve some of the effects as the 
1776     <A
1777 HREF="actions-file#BLOCK"
1778 TARGET="_top"
1779 ><SPAN
1780 CLASS="QUOTE"
1781 >"+block"</SPAN
1782 ></A
1783 >
1784     action, i.e. it can be used to block ads and banners. In the overall 
1785     scheme of things, filtering is one of the first things <SPAN
1786 CLASS="QUOTE"
1787 >"Privoxy"</SPAN
1788
1789     does with a web page. So other most other actions are applied to the 
1790     already <SPAN
1791 CLASS="QUOTE"
1792 >"filtered"</SPAN
1793 > page.
1794    </P
1795 ></DD
1796 ></DL
1797 ></DIV
1798 ></DIV
1799 ><DIV
1800 CLASS="SECT3"
1801 ><H4
1802 CLASS="SECT3"
1803 ><A
1804 NAME="HIDE-FORWARDED-FOR-HEADERS"
1805 >8.5.7. <I
1806 CLASS="EMPHASIS"
1807 >+hide-forwarded-for-headers</I
1808 ></A
1809 ></H4
1810 ><P
1811 ></P
1812 ><DIV
1813 CLASS="VARIABLELIST"
1814 ><DL
1815 ><DT
1816 >Type:</DT
1817 ><DD
1818 ><P
1819 >Boolean.</P
1820 ></DD
1821 ><DT
1822 >Typical uses:</DT
1823 ><DD
1824 ><P
1825 >    Block any existing X-Forwarded-for HTTP header, and do not add a new one.
1826    </P
1827 ></DD
1828 ><DT
1829 >Possible values:</DT
1830 ><DD
1831 ><P
1832 >    N/A
1833    </P
1834 ></DD
1835 ><DT
1836 >Example usage:</DT
1837 ><DD
1838 ><P
1839 CLASS="LITERALLAYOUT"
1840 >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
1841 CLASS="EMPHASIS"
1842 >{+hide-forwarded-for-headers}</I
1843 ><br>
1844 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
1845 CLASS="EMPHASIS"
1846 >.example.com</I
1847 ><br>
1848 &nbsp;&nbsp;&nbsp;&nbsp;</P
1849 ></DD
1850 ><DT
1851 >Notes:</DT
1852 ><DD
1853 ><P
1854 >    It is fairly safe to leave this on. It does not seem to break many sites.
1855    </P
1856 ></DD
1857 ></DL
1858 ></DIV
1859 ></DIV
1860 ><DIV
1861 CLASS="SECT3"
1862 ><H4
1863 CLASS="SECT3"
1864 ><A
1865 NAME="HIDE-FROM-HEADER"
1866 >8.5.8. <I
1867 CLASS="EMPHASIS"
1868 >+hide-from-header</I
1869 ></A
1870 ></H4
1871 ><P
1872 ></P
1873 ><DIV
1874 CLASS="VARIABLELIST"
1875 ><DL
1876 ><DT
1877 >Type:</DT
1878 ><DD
1879 ><P
1880 >Parameterized.</P
1881 ></DD
1882 ><DT
1883 >Typical uses:</DT
1884 ><DD
1885 ><P
1886 >    To block the browser from sending your email address in a <SPAN
1887 CLASS="QUOTE"
1888 >"From:"</SPAN
1889 >
1890     header.
1891    </P
1892 ></DD
1893 ><DT
1894 >Possible values:</DT
1895 ><DD
1896 ><P
1897 >    Keyword: <SPAN
1898 CLASS="QUOTE"
1899 >"block"</SPAN
1900 >, or any user defined value.
1901    </P
1902 ></DD
1903 ><DT
1904 >Example usage:</DT
1905 ><DD
1906 ><P
1907 CLASS="LITERALLAYOUT"
1908 >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
1909 CLASS="EMPHASIS"
1910 >{+hide-from-header{block}}</I
1911 ><br>
1912 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
1913 CLASS="EMPHASIS"
1914 >.example.com</I
1915 ><br>
1916 &nbsp;&nbsp;&nbsp;&nbsp;</P
1917 ></DD
1918 ><DT
1919 >Notes:</DT
1920 ><DD
1921 ><P
1922 >    The keyword <SPAN
1923 CLASS="QUOTE"
1924 >"block"</SPAN
1925 > will completely remove the header 
1926     (not to be confused with the <A
1927 HREF="actions-file.html#BLOCK"
1928 TARGET="_top"
1929 ><SPAN
1930 CLASS="QUOTE"
1931 >"+block"</SPAN
1932 ></A
1933 > action).
1934     Alternately, you can specify any value you prefer to send to the web
1935     server.
1936    </P
1937 ></DD
1938 ></DL
1939 ></DIV
1940 ></DIV
1941 ><DIV
1942 CLASS="SECT3"
1943 ><H4
1944 CLASS="SECT3"
1945 ><A
1946 NAME="HIDE-REFERER"
1947 >8.5.9. <I
1948 CLASS="EMPHASIS"
1949 >+hide-referer</I
1950 ></A
1951 ></H4
1952 ><A
1953 NAME="HIDE-REFERRER"
1954 ></A
1955 ><P
1956 ></P
1957 ><DIV
1958 CLASS="VARIABLELIST"
1959 ><DL
1960 ><DT
1961 >Type:</DT
1962 ><DD
1963 ><P
1964 >Parameterized.</P
1965 ></DD
1966 ><DT
1967 >Typical uses:</DT
1968 ><DD
1969 ><P
1970 >     Don't send the <SPAN
1971 CLASS="QUOTE"
1972 >"Referer:"</SPAN
1973 > (sic) HTTP header to the web site.
1974      Or, alternately send a forged header instead.
1975    </P
1976 ></DD
1977 ><DT
1978 >Possible values:</DT
1979 ><DD
1980 ><P
1981 >     Prevent the header from being sent with the keyword, <SPAN
1982 CLASS="QUOTE"
1983 >"block"</SPAN
1984 >.
1985      Or, <SPAN
1986 CLASS="QUOTE"
1987 >"forge"</SPAN
1988 > a URL to one from the same server as the request.
1989      Or, set to user defined value of your choice.
1990    </P
1991 ></DD
1992 ><DT
1993 >Example usage:</DT
1994 ><DD
1995 ><P
1996 CLASS="LITERALLAYOUT"
1997 >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
1998 CLASS="EMPHASIS"
1999 >{+hide-referer{forge}}</I
2000 ><br>
2001 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
2002 CLASS="EMPHASIS"
2003 >.example.com</I
2004 ><br>
2005 &nbsp;&nbsp;&nbsp;&nbsp;</P
2006 ></DD
2007 ><DT
2008 >Notes:</DT
2009 ><DD
2010 ><P
2011 >    <SPAN
2012 CLASS="QUOTE"
2013 >"forge"</SPAN
2014 > is the preferred option here, since some servers will
2015     not send images back otherwise.
2016    </P
2017 ><P
2018 >  
2019    <SPAN
2020 CLASS="QUOTE"
2021 >"+hide-referrer"</SPAN
2022 > is an alternate spelling of
2023    <SPAN
2024 CLASS="QUOTE"
2025 >"+hide-referer"</SPAN
2026 >. It has the exact same parameters, and can be freely
2027    mixed with, <SPAN
2028 CLASS="QUOTE"
2029 >"+hide-referer"</SPAN
2030 >. (<SPAN
2031 CLASS="QUOTE"
2032 >"referrer"</SPAN
2033 > is the
2034    correct English spelling, however the HTTP specification has a bug - it
2035    requires it to be spelled as <SPAN
2036 CLASS="QUOTE"
2037 >"referer"</SPAN
2038 >.) 
2039   </P
2040 ></DD
2041 ></DL
2042 ></DIV
2043 ></DIV
2044 ><DIV
2045 CLASS="SECT3"
2046 ><H4
2047 CLASS="SECT3"
2048 ><A
2049 NAME="HIDE-USER-AGENT"
2050 >8.5.10. <I
2051 CLASS="EMPHASIS"
2052 >+hide-user-agent</I
2053 ></A
2054 ></H4
2055 ><P
2056 ></P
2057 ><DIV
2058 CLASS="VARIABLELIST"
2059 ><DL
2060 ><DT
2061 >Type:</DT
2062 ><DD
2063 ><P
2064 >Parameterized.</P
2065 ></DD
2066 ><DT
2067 >Typical uses:</DT
2068 ><DD
2069 ><P
2070 >    To change the <SPAN
2071 CLASS="QUOTE"
2072 >"User-Agent:"</SPAN
2073 > header so web servers can't tell
2074     your browser type. Who's business is it anyway?
2075    </P
2076 ></DD
2077 ><DT
2078 >Possible values:</DT
2079 ><DD
2080 ><P
2081 >    Any user defined string.
2082    </P
2083 ></DD
2084 ><DT
2085 >Example usage:</DT
2086 ><DD
2087 ><P
2088 CLASS="LITERALLAYOUT"
2089 >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
2090 CLASS="EMPHASIS"
2091 >{+hide-user-agent{Netscape 6.1 (X11; I; Linux 2.4.18 i686)}}</I
2092 ><br>
2093 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
2094 CLASS="EMPHASIS"
2095 >.msn.com</I
2096 ><br>
2097 &nbsp;&nbsp;&nbsp;&nbsp;</P
2098 ></DD
2099 ><DT
2100 >Notes:</DT
2101 ><DD
2102 ><P
2103 >     Warning! This breaks many web sites that depend on this in order 
2104      to determine how the target browser will respond to various 
2105      requests. Use with caution.
2106    </P
2107 ></DD
2108 ></DL
2109 ></DIV
2110 ></DIV
2111 ><DIV
2112 CLASS="SECT3"
2113 ><H4
2114 CLASS="SECT3"
2115 ><A
2116 NAME="HANDLE-AS-IMAGE"
2117 >8.5.11. <I
2118 CLASS="EMPHASIS"
2119 >+handle-as-image</I
2120 ></A
2121 ></H4
2122 ><P
2123 ></P
2124 ><DIV
2125 CLASS="VARIABLELIST"
2126 ><DL
2127 ><DT
2128 >Type:</DT
2129 ><DD
2130 ><P
2131 >Boolean.</P
2132 ></DD
2133 ><DT
2134 >Typical uses:</DT
2135 ><DD
2136 ><P
2137 >    To define what <SPAN
2138 CLASS="APPLICATION"
2139 >Privoxy</SPAN
2140 > should treat 
2141     automatically as an image, and is an important ingredient of how 
2142     ads are handled.
2143    </P
2144 ></DD
2145 ><DT
2146 >Possible values:</DT
2147 ><DD
2148 ><P
2149 >    N/A
2150    </P
2151 ></DD
2152 ><DT
2153 >Example usage:</DT
2154 ><DD
2155 ><P
2156 CLASS="LITERALLAYOUT"
2157 >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
2158 CLASS="EMPHASIS"
2159 >{+handle-as-image}</I
2160 ><br>
2161 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
2162 CLASS="EMPHASIS"
2163 >/.*\.(gif|jpg|jpeg|png|bmp|ico)</I
2164 ><br>
2165 &nbsp;&nbsp;&nbsp;&nbsp;</P
2166 ></DD
2167 ><DT
2168 >Notes:</DT
2169 ><DD
2170 ><P
2171 >    This only has meaning if the URL (or pattern) also is
2172     <SPAN
2173 CLASS="QUOTE"
2174 >"+block"</SPAN
2175 >ed, in which case a user definable image can
2176     be sent rather than a HTML page. This is integral to the whole concept of
2177     ad blocking: the URL must match <I
2178 CLASS="EMPHASIS"
2179 >both</I
2180 > a <A
2181 HREF="actions-file.html#BLOCK"
2182 TARGET="_top"
2183 ><SPAN
2184 CLASS="QUOTE"
2185 >"+block"</SPAN
2186 ></A
2187 > rule,
2188     <I
2189 CLASS="EMPHASIS"
2190 >and</I
2191 > <SPAN
2192 CLASS="QUOTE"
2193 >"+handle-as-image"</SPAN
2194 >.
2195     (See <A
2196 HREF="actions-file.html#SET-IMAGE-BLOCKER"
2197 TARGET="_top"
2198 ><SPAN
2199 CLASS="QUOTE"
2200 >"+set-image-blocker"</SPAN
2201 ></A
2202 >
2203     below for control over what will actually be displayed by the browser.)
2204    </P
2205 ><P
2206 >    There is little reason to change the default definition for this action.
2207    </P
2208 ></DD
2209 ></DL
2210 ></DIV
2211 ></DIV
2212 ><DIV
2213 CLASS="SECT3"
2214 ><H4
2215 CLASS="SECT3"
2216 ><A
2217 NAME="SET-IMAGE-BLOCKER"
2218 >8.5.12. <I
2219 CLASS="EMPHASIS"
2220 >+set-image-blocker</I
2221 ></A
2222 ></H4
2223 ><P
2224 ></P
2225 ><DIV
2226 CLASS="VARIABLELIST"
2227 ><DL
2228 ><DT
2229 >Type:</DT
2230 ><DD
2231 ><P
2232 >Parameterized.</P
2233 ></DD
2234 ><DT
2235 >Typical uses:</DT
2236 ><DD
2237 ><P
2238 >    Decide what to do with URLs that end up tagged with <I
2239 CLASS="EMPHASIS"
2240 >both</I
2241
2242     <A
2243 HREF="actions-file.html#BLOCK"
2244 TARGET="_top"
2245 ><SPAN
2246 CLASS="QUOTE"
2247 >"+block"</SPAN
2248 ></A
2249 >
2250     and <A
2251 HREF="actions-file.html#HANDLE-AS-IMAGE"
2252 TARGET="_top"
2253 ><SPAN
2254 CLASS="QUOTE"
2255 >"+handle-as-image"</SPAN
2256 ></A
2257 >,
2258     e.g an advertisement.
2259    </P
2260 ></DD
2261 ><DT
2262 >Possible values:</DT
2263 ><DD
2264 ><P
2265 >    There are four available options: <SPAN
2266 CLASS="QUOTE"
2267 >"-set-image-blocker"</SPAN
2268 > will send a HTML
2269     <SPAN
2270 CLASS="QUOTE"
2271 >"blocked"</SPAN
2272 > page, usually resulting in a <SPAN
2273 CLASS="QUOTE"
2274 >"broken
2275     image"</SPAN
2276 > icon.
2277     <SPAN
2278 CLASS="QUOTE"
2279 >"+set-image-blocker{<I
2280 CLASS="EMPHASIS"
2281 >blank</I
2282 >}"</SPAN
2283 > will send a
2284     1x1 transparent GIF image.
2285     <SPAN
2286 CLASS="QUOTE"
2287 >"+set-image-blocker{<I
2288 CLASS="EMPHASIS"
2289 >pattern</I
2290 >}"</SPAN
2291 > will send a
2292     checkerboard type pattern (the default). And finally,
2293     <SPAN
2294 CLASS="QUOTE"
2295 >"+set-image-blocker{<I
2296 CLASS="EMPHASIS"
2297 >http://xyz.com</I
2298 >}"</SPAN
2299 > will
2300     send a HTTP temporary redirect to the specified image. This has the
2301     advantage of the icon being being cached by the browser, which will speed
2302     up the display.
2303    </P
2304 ></DD
2305 ><DT
2306 >Example usage:</DT
2307 ><DD
2308 ><P
2309 CLASS="LITERALLAYOUT"
2310 >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
2311 CLASS="EMPHASIS"
2312 >{+set-image-blocker{blank}}</I
2313 ><br>
2314 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
2315 CLASS="EMPHASIS"
2316 >.example.com</I
2317 ><br>
2318 &nbsp;&nbsp;&nbsp;&nbsp;</P
2319 ></DD
2320 ><DT
2321 >Notes:</DT
2322 ><DD
2323 ><P
2324 >    If you want <I
2325 CLASS="EMPHASIS"
2326 >invisible</I
2327 > ads, they need to meet 
2328     criteria as matching both <I
2329 CLASS="EMPHASIS"
2330 >images</I
2331 > and <I
2332 CLASS="EMPHASIS"
2333 >blocked</I
2334 >
2335     actions. And then, <SPAN
2336 CLASS="QUOTE"
2337 >"image-blocker"</SPAN
2338 > should be set to
2339     <SPAN
2340 CLASS="QUOTE"
2341 >"blank"</SPAN
2342 > for invisibility. Note you cannot treat HTML pages as
2343     images in most cases. For instance, frames require an HTML page to
2344     display. So a frame that is an ad, typically cannot be treated as an image.
2345     Forcing an <SPAN
2346 CLASS="QUOTE"
2347 >"image"</SPAN
2348 > in this situation just will not work
2349     reliably. 
2350    </P
2351 ></DD
2352 ></DL
2353 ></DIV
2354 ></DIV
2355 ><DIV
2356 CLASS="SECT3"
2357 ><H4
2358 CLASS="SECT3"
2359 ><A
2360 NAME="LIMIT-CONNECT"
2361 >8.5.13. <I
2362 CLASS="EMPHASIS"
2363 >+limit-connect</I
2364 ></A
2365 ></H4
2366 ><P
2367 ></P
2368 ><DIV
2369 CLASS="VARIABLELIST"
2370 ><DL
2371 ><DT
2372 >Type:</DT
2373 ><DD
2374 ><P
2375 >Parameterized.</P
2376 ></DD
2377 ><DT
2378 >Typical uses:</DT
2379 ><DD
2380 ><P
2381 >    By default, <SPAN
2382 CLASS="APPLICATION"
2383 >Privoxy</SPAN
2384 > only allows HTTP CONNECT
2385     requests to port 443 (the standard, secure HTTPS port). Use 
2386     <SPAN
2387 CLASS="QUOTE"
2388 >"+limit-connect"</SPAN
2389 > to disable this altogether, or to allow 
2390     more ports.
2391    </P
2392 ></DD
2393 ><DT
2394 >Possible values:</DT
2395 ><DD
2396 ><P
2397 >    Any valid port number, or port number range.
2398    </P
2399 ></DD
2400 ><DT
2401 >Example usages:</DT
2402 ><DD
2403 ><P
2404 CLASS="LITERALLAYOUT"
2405 >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
2406 CLASS="EMPHASIS"
2407 >+limit-connect{443}</I
2408 >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;This&nbsp;is&nbsp;the&nbsp;default&nbsp;and&nbsp;need&nbsp;not&nbsp;be&nbsp;specified.<br>
2409 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
2410 CLASS="EMPHASIS"
2411 >+limit-connect{80,443}</I
2412 >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;Ports&nbsp;80&nbsp;and&nbsp;443&nbsp;are&nbsp;OK.<br>
2413 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
2414 CLASS="EMPHASIS"
2415 >+limit-connect{-3, 7, 20-100, 500-}</I
2416 >&nbsp;&nbsp;&nbsp;#&nbsp;Port&nbsp;less&nbsp;than&nbsp;3,&nbsp;7,&nbsp;20&nbsp;to&nbsp;100&nbsp;and&nbsp;above&nbsp;500&nbsp;are&nbsp;OK.<br>
2417 &nbsp;&nbsp;&nbsp;&nbsp;</P
2418 ></DD
2419 ><DT
2420 >Notes:</DT
2421 ><DD
2422 ><P
2423 >    The CONNECT methods exists in HTTP to allow access to secure websites
2424     (https:// URLs) through proxies. It works very simply: the proxy connects
2425     to the server on the specified port, and then short-circuits its
2426     connections to the client <I
2427 CLASS="EMPHASIS"
2428 >and</I
2429 > to the remote proxy.
2430     This can be a big security hole, since CONNECT-enabled proxies can be
2431     abused as TCP relays very easily.
2432   </P
2433 ><P
2434
2435    If you want to allow CONNECT for more ports than this, or want to forbid
2436    CONNECT altogether, you can specify a comma separated list of ports and
2437    port ranges (the latter using dashes, with the minimum defaulting to 0 and
2438    max to 65K).
2439   </P
2440 ><P
2441 >   If you don't know what any of this means, there probably is no reason to 
2442    change this one.
2443   </P
2444 ></DD
2445 ></DL
2446 ></DIV
2447 ></DIV
2448 ><DIV
2449 CLASS="SECT3"
2450 ><H4
2451 CLASS="SECT3"
2452 ><A
2453 NAME="PREVENT-COMPRESSION"
2454 >8.5.14. <I
2455 CLASS="EMPHASIS"
2456 >+prevent-compression</I
2457 ></A
2458 ></H4
2459 ><P
2460 ></P
2461 ><DIV
2462 CLASS="VARIABLELIST"
2463 ><DL
2464 ><DT
2465 >Type:</DT
2466 ><DD
2467 ><P
2468 >Boolean.</P
2469 ></DD
2470 ><DT
2471 >Typical uses:</DT
2472 ><DD
2473 ><P
2474 >    Prevent the specified websites from compressing HTTP data.
2475    </P
2476 ></DD
2477 ><DT
2478 >Possible values:</DT
2479 ><DD
2480 ><P
2481 >    N/A
2482    </P
2483 ></DD
2484 ><DT
2485 >Example usage:</DT
2486 ><DD
2487 ><P
2488 CLASS="LITERALLAYOUT"
2489 >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
2490 CLASS="EMPHASIS"
2491 >{+prevent-compression}</I
2492 ><br>
2493 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
2494 CLASS="EMPHASIS"
2495 >.example.com</I
2496 ><br>
2497 &nbsp;&nbsp;&nbsp;&nbsp;</P
2498 ></DD
2499 ><DT
2500 >Notes:</DT
2501 ><DD
2502 ><P
2503 >    Some websites do this, which can be a problem for
2504     <SPAN
2505 CLASS="APPLICATION"
2506 >Privoxy</SPAN
2507 >, since 
2508     <A
2509 HREF="actions-file.html#FILTER"
2510 TARGET="_top"
2511 ><SPAN
2512 CLASS="QUOTE"
2513 >"+filter"</SPAN
2514 ></A
2515 >,
2516     <A
2517 HREF="actions-file.html#KILL-POPUPS"
2518 TARGET="_top"
2519 ><SPAN
2520 CLASS="QUOTE"
2521 >"+kill-popups"</SPAN
2522 ></A
2523 >
2524     and <A
2525 HREF="actions-file.html#GIF-DEANIMATE"
2526 TARGET="_top"
2527 ><SPAN
2528 CLASS="QUOTE"
2529 >"+gif-deanimate"</SPAN
2530 ></A
2531 >
2532     will not work on compressed data. This will slow down connections to those
2533     websites, though. Default typically is to turn
2534     <SPAN
2535 CLASS="QUOTE"
2536 >"prevent-compression"</SPAN
2537 > on.
2538    </P
2539 ></DD
2540 ></DL
2541 ></DIV
2542 ></DIV
2543 ><DIV
2544 CLASS="SECT3"
2545 ><H4
2546 CLASS="SECT3"
2547 ><A
2548 NAME="SESSION-COOKIES-ONLY"
2549 >8.5.15. <I
2550 CLASS="EMPHASIS"
2551 >+session-cookies-only</I
2552 ></A
2553 ></H4
2554 ><P
2555 ></P
2556 ><DIV
2557 CLASS="VARIABLELIST"
2558 ><DL
2559 ><DT
2560 >Type:</DT
2561 ><DD
2562 ><P
2563 >Boolean.</P
2564 ></DD
2565 ><DT
2566 >Typical uses:</DT
2567 ><DD
2568 ><P
2569 >    Allow cookies for the current browser session <I
2570 CLASS="EMPHASIS"
2571 >only</I
2572 >.
2573    </P
2574 ></DD
2575 ><DT
2576 >Possible values:</DT
2577 ><DD
2578 ><P
2579 >    N/A
2580    </P
2581 ></DD
2582 ><DT
2583 >Example usage (disabling):</DT
2584 ><DD
2585 ><P
2586 CLASS="LITERALLAYOUT"
2587 >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
2588 CLASS="EMPHASIS"
2589 >{-session-cookies-only}</I
2590 ><br>
2591 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
2592 CLASS="EMPHASIS"
2593 >.example.com</I
2594 ><br>
2595 &nbsp;&nbsp;&nbsp;&nbsp;</P
2596 ></DD
2597 ><DT
2598 >Notes:</DT
2599 ><DD
2600 ><P
2601 >    If websites set cookies, <SPAN
2602 CLASS="QUOTE"
2603 >"+session-cookies-only"</SPAN
2604 > will make sure
2605     they are erased when you exit and restart your web browser. This makes
2606     profiling cookies useless, but won't break sites which require cookies so
2607     that you can log in for transactions. This is generally turned on for all 
2608     sites, and is the recommended setting.
2609    </P
2610 ><P
2611 >    <SPAN
2612 CLASS="QUOTE"
2613 >"+prevent-*-cookies"</SPAN
2614 > actions should be turned off as well (see
2615     below), for <SPAN
2616 CLASS="QUOTE"
2617 >"+session-cookies-only"</SPAN
2618 > to work. Or, else no cookies 
2619     will get through at all. For, <SPAN
2620 CLASS="QUOTE"
2621 >"persistent"</SPAN
2622 > cookies that survive 
2623     across browser sessions, see below as well.
2624    </P
2625 ></DD
2626 ></DL
2627 ></DIV
2628 ></DIV
2629 ><DIV
2630 CLASS="SECT3"
2631 ><H4
2632 CLASS="SECT3"
2633 ><A
2634 NAME="PREVENT-READING-COOKIES"
2635 >8.5.16. <I
2636 CLASS="EMPHASIS"
2637 >+prevent-reading-cookies</I
2638 ></A
2639 ></H4
2640 ><P
2641 ></P
2642 ><DIV
2643 CLASS="VARIABLELIST"
2644 ><DL
2645 ><DT
2646 >Type:</DT
2647 ><DD
2648 ><P
2649 >Boolean.</P
2650 ></DD
2651 ><DT
2652 >Typical uses:</DT
2653 ><DD
2654 ><P
2655 >    Explicitly prevent the web server from reading any cookies on your 
2656     system.
2657    </P
2658 ></DD
2659 ><DT
2660 >Possible values:</DT
2661 ><DD
2662 ><P
2663 >    N/A
2664    </P
2665 ></DD
2666 ><DT
2667 >Example usage:</DT
2668 ><DD
2669 ><P
2670 CLASS="LITERALLAYOUT"
2671 >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
2672 CLASS="EMPHASIS"
2673 >{+prevent-reading-cookies}</I
2674 ><br>
2675 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
2676 CLASS="EMPHASIS"
2677 >.example.com</I
2678 ><br>
2679 &nbsp;&nbsp;&nbsp;&nbsp;</P
2680 ></DD
2681 ><DT
2682 >Notes:</DT
2683 ><DD
2684 ><P
2685 >    Often used in conjunction with <SPAN
2686 CLASS="QUOTE"
2687 >"+prevent-setting-cookies"</SPAN
2688 > to 
2689     disable cookies completely. Note that 
2690     <A
2691 HREF="actions-file.html#SESSION-COOKIES-ONLY"
2692 TARGET="_top"
2693 ><SPAN
2694 CLASS="QUOTE"
2695 >"+session-cookies-only"</SPAN
2696 ></A
2697 >
2698     requires these to both be disabled (or else it never gets any cookies to cache).
2699    </P
2700 ><P
2701 >    For <SPAN
2702 CLASS="QUOTE"
2703 >"persistent"</SPAN
2704 > cookies to work (i.e. they survive across browser 
2705     sessions and reboots), all three cookie settings should be <SPAN
2706 CLASS="QUOTE"
2707 >"off"</SPAN
2708
2709     for the specified sites.
2710    </P
2711 ></DD
2712 ></DL
2713 ></DIV
2714 ></DIV
2715 ><DIV
2716 CLASS="SECT3"
2717 ><H4
2718 CLASS="SECT3"
2719 ><A
2720 NAME="PREVENT-SETTING-COOKIES"
2721 >8.5.17. <I
2722 CLASS="EMPHASIS"
2723 >+prevent-setting-cookies</I
2724 ></A
2725 ></H4
2726 ><P
2727 ></P
2728 ><DIV
2729 CLASS="VARIABLELIST"
2730 ><DL
2731 ><DT
2732 >Type:</DT
2733 ><DD
2734 ><P
2735 >Boolean.</P
2736 ></DD
2737 ><DT
2738 >Typical uses:</DT
2739 ><DD
2740 ><P
2741 >    Explicitly block the web server from storing cookies on your 
2742     system.
2743    </P
2744 ></DD
2745 ><DT
2746 >Possible values:</DT
2747 ><DD
2748 ><P
2749 >    N/A
2750    </P
2751 ></DD
2752 ><DT
2753 >Example usage:</DT
2754 ><DD
2755 ><P
2756 CLASS="LITERALLAYOUT"
2757 >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
2758 CLASS="EMPHASIS"
2759 >{+prevent-setting-cookies}</I
2760 ><br>
2761 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
2762 CLASS="EMPHASIS"
2763 >.example.com</I
2764 ><br>
2765 &nbsp;&nbsp;&nbsp;&nbsp;</P
2766 ></DD
2767 ><DT
2768 >Notes:</DT
2769 ><DD
2770 ><P
2771 >    Often used in conjunction with <SPAN
2772 CLASS="QUOTE"
2773 >"+prevent-reading-cookies"</SPAN
2774 > to 
2775     disable cookies completely (see above).
2776    </P
2777 ></DD
2778 ></DL
2779 ></DIV
2780 ></DIV
2781 ><DIV
2782 CLASS="SECT3"
2783 ><H4
2784 CLASS="SECT3"
2785 ><A
2786 NAME="KILL-POPUP"
2787 >8.5.18. <I
2788 CLASS="EMPHASIS"
2789 >+kill-popups<A
2790 NAME="KILL-POPUPS"
2791 ></A
2792 ></I
2793 ></A
2794 ></H4
2795 ><P
2796 ></P
2797 ><DIV
2798 CLASS="VARIABLELIST"
2799 ><DL
2800 ><DT
2801 >Type:</DT
2802 ><DD
2803 ><P
2804 >Boolean.</P
2805 ></DD
2806 ><DT
2807 >Typical uses:</DT
2808 ><DD
2809 ><P
2810 >    Stop those annoying JavaScript pop-up windows! 
2811    </P
2812 ></DD
2813 ><DT
2814 >Possible values:</DT
2815 ><DD
2816 ><P
2817 >    N/A
2818    </P
2819 ></DD
2820 ><DT
2821 >Example usage:</DT
2822 ><DD
2823 ><P
2824 CLASS="LITERALLAYOUT"
2825 >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
2826 CLASS="EMPHASIS"
2827 >{+kill-popups}</I
2828 ><br>
2829 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
2830 CLASS="EMPHASIS"
2831 >.example.com</I
2832 ><br>
2833 &nbsp;&nbsp;&nbsp;&nbsp;</P
2834 ></DD
2835 ><DT
2836 >Notes:</DT
2837 ><DD
2838 ><P
2839 >    <SPAN
2840 CLASS="QUOTE"
2841 >"+kill-popups"</SPAN
2842 > uses a built in filter to disable pop-ups
2843     that use the <TT
2844 CLASS="LITERAL"
2845 >window.open()</TT
2846 > function, etc. This is 
2847     one of the first actions processed by <SPAN
2848 CLASS="APPLICATION"
2849 >Privoxy</SPAN
2850 >
2851     as it contacts the remote web server. This action is not always 100% reliable, 
2852     and is supplemented by <SPAN
2853 CLASS="QUOTE"
2854 >"+filter{<I
2855 CLASS="EMPHASIS"
2856 >popups</I
2857 >}"</SPAN
2858 >.
2859     </P
2860 ></DD
2861 ></DL
2862 ></DIV
2863 ></DIV
2864 ><DIV
2865 CLASS="SECT3"
2866 ><H4
2867 CLASS="SECT3"
2868 ><A
2869 NAME="SEND-VANILLA-WAFER"
2870 >8.5.19. <I
2871 CLASS="EMPHASIS"
2872 >+send-vanilla-wafer</I
2873 ></A
2874 ></H4
2875 ><P
2876 ></P
2877 ><DIV
2878 CLASS="VARIABLELIST"
2879 ><DL
2880 ><DT
2881 >Type:</DT
2882 ><DD
2883 ><P
2884 >Boolean.</P
2885 ></DD
2886 ><DT
2887 >Typical uses:</DT
2888 ><DD
2889 ><P
2890 >    Sends a cookie for every site stating that you do not accept any copyright
2891     on cookies sent to you, and asking them not to track you.
2892    </P
2893 ></DD
2894 ><DT
2895 >Possible values:</DT
2896 ><DD
2897 ><P
2898 >    N/A
2899    </P
2900 ></DD
2901 ><DT
2902 >Example usage:</DT
2903 ><DD
2904 ><P
2905 CLASS="LITERALLAYOUT"
2906 >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
2907 CLASS="EMPHASIS"
2908 >{+send-vanilla-wafer}</I
2909 ><br>
2910 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
2911 CLASS="EMPHASIS"
2912 >.example.com</I
2913 ><br>
2914 &nbsp;&nbsp;&nbsp;&nbsp;</P
2915 ></DD
2916 ><DT
2917 >Notes:</DT
2918 ><DD
2919 ><P
2920 >    This action only applies if you are using a <TT
2921 CLASS="FILENAME"
2922 >jarfile</TT
2923 >
2924     for saving cookies. Of course, this is a (relatively) unique header and 
2925     could conceivably be used to track you.
2926    </P
2927 ></DD
2928 ></DL
2929 ></DIV
2930 ></DIV
2931 ><DIV
2932 CLASS="SECT3"
2933 ><H4
2934 CLASS="SECT3"
2935 ><A
2936 NAME="SEND-WAFER"
2937 >8.5.20. <I
2938 CLASS="EMPHASIS"
2939 >+send-wafer</I
2940 ></A
2941 ></H4
2942 ><P
2943 ></P
2944 ><DIV
2945 CLASS="VARIABLELIST"
2946 ><DL
2947 ><DT
2948 >Type:</DT
2949 ><DD
2950 ><P
2951 >Multi-value.</P
2952 ></DD
2953 ><DT
2954 >Typical uses:</DT
2955 ><DD
2956 ><P
2957 >    This allows you to send an arbitrary, user definable cookie.
2958    </P
2959 ></DD
2960 ><DT
2961 >Possible values:</DT
2962 ><DD
2963 ><P
2964 >    User specified cookie name and corresponding value.
2965    </P
2966 ></DD
2967 ><DT
2968 >Example usage:</DT
2969 ><DD
2970 ><P
2971 CLASS="LITERALLAYOUT"
2972 >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
2973 CLASS="EMPHASIS"
2974 >{+send-wafer{name=value}}</I
2975 ><br>
2976 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<I
2977 CLASS="EMPHASIS"
2978 >.example.com</I
2979 ><br>
2980 &nbsp;&nbsp;&nbsp;&nbsp;</P
2981 ></DD
2982 ><DT
2983 >Notes:</DT
2984 ><DD
2985 ><P
2986 >    This can be specified multiple times in order to add as many cookies as you
2987     like.
2988    </P
2989 ></DD
2990 ></DL
2991 ></DIV
2992 ></DIV
2993 ><DIV
2994 CLASS="SECT3"
2995 ><H3
2996 CLASS="SECT3"
2997 ><A
2998 NAME="AEN2289"
2999 >8.5.21. Summary</A
3000 ></H3
3001 ><P
3002 > Note that many of these actions have the potential to cause a page to
3003  misbehave, possibly even not to display at all. There are many ways 
3004  a site designer may choose to design his site, and what HTTP header 
3005  content, and other criteria, he may depend on. There is no way to have hard
3006  and fast rules for all sites. See the <A
3007 HREF="appendix.html#ACTIONSANAT"
3008 >Appendix</A
3009 > for a brief example on troubleshooting
3010  actions.</P
3011 ></DIV
3012 ><DIV
3013 CLASS="SECT3"
3014 ><H2
3015 CLASS="SECT3"
3016 ><A
3017 NAME="ACT-EXAMPLES"
3018 >8.5.22. Sample Actions Files</A
3019 ></H2
3020 ><P
3021 > Remember that the meaning of any of the above references is reversed by preceding
3022  the action with a <SPAN
3023 CLASS="QUOTE"
3024 >"-"</SPAN
3025 >, in place of the <SPAN
3026 CLASS="QUOTE"
3027 >"+"</SPAN
3028 >. Also, 
3029  that some actions are turned on in the default section of the actions file, 
3030  and require little to no additional configuration. These are just <SPAN
3031 CLASS="QUOTE"
3032 >"on"</SPAN
3033 >.</P
3034 ><P
3035 > But, other actions that are turned on in the default section <I
3036 CLASS="EMPHASIS"
3037 >do
3038  typically require</I
3039 > exceptions to be listed in the latter sections of 
3040  one of our actions file. For instance, by default no URLs are
3041  <SPAN
3042 CLASS="QUOTE"
3043 >"blocked"</SPAN
3044 > (i.e. in the default definitions of
3045  <TT
3046 CLASS="FILENAME"
3047 >default.action</TT
3048 >). We need exceptions to this in order to
3049  <I
3050 CLASS="EMPHASIS"
3051 >enable</I
3052 > ad blocking in the lower sections. But we need to
3053  be very selective about what we do block. Thus, the default is <SPAN
3054 CLASS="QUOTE"
3055 >"off"</SPAN
3056 >
3057  for blocking.</P
3058 ><P
3059 > Below is a liberally commented sample <TT
3060 CLASS="FILENAME"
3061 >default.action</TT
3062 > file
3063  to demonstrate how all the pieces come together. And to show how exceptions
3064  to the default policies can be handled. This is followed by a brief 
3065  <TT
3066 CLASS="FILENAME"
3067 >user.action</TT
3068 > with similar examples.</P
3069 ><P
3070 > <TT
3071 CLASS="LITERAL"
3072 >  <P
3073 CLASS="LITERALLAYOUT"
3074 >#&nbsp;Sample&nbsp;default.action&nbsp;file&nbsp;&#60;developers@privoxy.org&#62;<br>
3075 <br>
3076 #&nbsp;Settings&nbsp;--&nbsp;Don't&nbsp;change!&nbsp;For&nbsp;internal&nbsp;Privoxy&nbsp;use&nbsp;ONLY.<br>
3077 {{settings}}<br>
3078 for-privoxy-version=3.0<br>
3079 <br>
3080 <br>
3081 ##########################################################################<br>
3082 #&nbsp;<A
3083 HREF="actions-file.html#ALIASES"
3084 TARGET="_top"
3085 >Aliases</A
3086 >&nbsp;must&nbsp;be&nbsp;defined&nbsp;*before*&nbsp;they&nbsp;are&nbsp;used.&nbsp;These&nbsp;are<br>
3087 #&nbsp;easier&nbsp;to&nbsp;remember,&nbsp;and&nbsp;can&nbsp;combine&nbsp;several&nbsp;actions&nbsp;into&nbsp;one.&nbsp;Once&nbsp;<br>
3088 #&nbsp;defined&nbsp;they&nbsp;can&nbsp;be&nbsp;used&nbsp;just&nbsp;like&nbsp;any&nbsp;built-in&nbsp;action&nbsp;--&nbsp;but&nbsp;within&nbsp;<br>
3089 #&nbsp;this&nbsp;file&nbsp;only!&nbsp;Aliases&nbsp;do&nbsp;not&nbsp;require&nbsp;a&nbsp;+&nbsp;or&nbsp;-&nbsp;sign.<br>
3090 ##########################################################################<br>
3091 <br>
3092 #&nbsp;Some&nbsp;useful&nbsp;aliases.<br>
3093 #&nbsp;Alias&nbsp;to&nbsp;turn&nbsp;off&nbsp;cookie&nbsp;handling,&nbsp;ie&nbsp;allow&nbsp;all&nbsp;cookies&nbsp;unmolested.<br>
3094 &nbsp;-prevent-cookies&nbsp;=&nbsp;-prevent-setting-cookies&nbsp;-prevent-reading-cookies&nbsp;\<br>
3095 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-session-cookies-only<br>
3096 <br>
3097 #&nbsp;Alias&nbsp;to&nbsp;both&nbsp;block&nbsp;and&nbsp;treat&nbsp;as&nbsp;if&nbsp;an&nbsp;image&nbsp;for&nbsp;ad&nbsp;blocking<br>
3098 #&nbsp;purposes.<br>
3099 &nbsp;+imageblock&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;+block&nbsp;+handle-as-image<br>
3100 <br>
3101 #&nbsp;Fragile&nbsp;sites&nbsp;should&nbsp;have&nbsp;the&nbsp;minimum&nbsp;changes:<br>
3102 &nbsp;fragile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;-block&nbsp;-deanimate-gifs&nbsp;-fast-redirects&nbsp;-filter&nbsp;-hide-referer&nbsp;\<br>
3103 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-prevent-cookies&nbsp;-kill-popups<br>
3104 <br>
3105 #&nbsp;Shops&nbsp;should&nbsp;be&nbsp;allowed&nbsp;to&nbsp;set&nbsp;persistent&nbsp;cookies<br>
3106 &nbsp;shop&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;-filter&nbsp;-prevent-cookies&nbsp;-session-cookies-only<br>
3107 <br>
3108 <br>
3109 ##########################################################################<br>
3110 #&nbsp;Begin&nbsp;default&nbsp;action&nbsp;settings.&nbsp;Anything&nbsp;in&nbsp;this&nbsp;section&nbsp;will&nbsp;match&nbsp;<br>
3111 #&nbsp;all&nbsp;URLs&nbsp;--&nbsp;UNLESS&nbsp;we&nbsp;have&nbsp;exceptions&nbsp;that&nbsp;also&nbsp;match,&nbsp;defined&nbsp;below&nbsp;this&nbsp;<br>
3112 #&nbsp;section.&nbsp;We&nbsp;will&nbsp;show&nbsp;all&nbsp;potential&nbsp;actions&nbsp;here&nbsp;whether&nbsp;they&nbsp;are&nbsp;on&nbsp;<br>
3113 #&nbsp;or&nbsp;off.&nbsp;We&nbsp;could&nbsp;omit&nbsp;any&nbsp;disabled&nbsp;action&nbsp;if&nbsp;we&nbsp;wanted,&nbsp;since&nbsp;all&nbsp;<br>
3114 #&nbsp;actions&nbsp;are&nbsp;'off'&nbsp;by&nbsp;default&nbsp;anyway.&nbsp;Shown&nbsp;for&nbsp;completeness&nbsp;only.<br>
3115 #&nbsp;Actions&nbsp;are&nbsp;enabled&nbsp;if&nbsp;preceded&nbsp;by&nbsp;a&nbsp;'+',&nbsp;otherwise&nbsp;they&nbsp;are&nbsp;disabled&nbsp;<br>
3116 #&nbsp;(unless&nbsp;an&nbsp;alias&nbsp;has&nbsp;been&nbsp;defined&nbsp;without&nbsp;this).<br>
3117 ##########################################################################<br>
3118 &nbsp;{&nbsp;\<br>
3119 &nbsp;<A
3120 HREF="actions-file.html#ADD-HEADER"
3121 TARGET="_top"
3122 >-add-header</A
3123 >&nbsp;\<br>
3124 &nbsp;<A
3125 HREF="actions-file.html#BLOCK"
3126 TARGET="_top"
3127 >-block</A
3128 >&nbsp;\<br>
3129 &nbsp;<A
3130 HREF="actions-file.html#DEANIMATE-GIFS"
3131 TARGET="_top"
3132 >-deanimate-gifs</A
3133 >&nbsp;\<br>
3134 &nbsp;<A
3135 HREF="actions-file.html#DOWNGRADE-HTTP-VERSION"
3136 TARGET="_top"
3137 >-downgrade-http-version</A
3138 >&nbsp;\<br>
3139 &nbsp;<A
3140 HREF="actions-file.html#FAST-REDIRECTS"
3141 TARGET="_top"
3142 >+fast-redirects</A
3143 >&nbsp;\<br>
3144 &nbsp;<A
3145 HREF="actions-file.html#FILTER-HTML-ANNOYANCES"
3146 TARGET="_top"
3147 >+filter{html-annoyances}</A
3148 >&nbsp;\<br>
3149 &nbsp;<A
3150 HREF="actions-file.html#FILTER-JS-ANNOYANCES"
3151 TARGET="_top"
3152 >+filter{js-annoyances}</A
3153 >&nbsp;\<br>
3154 &nbsp;<A
3155 HREF="actions-file.html#FILTER-CONTENT-COOKIES"
3156 TARGET="_top"
3157 >-filter{content-cookies}</A
3158 >&nbsp;\<br>
3159 &nbsp;<A
3160 HREF="actions-file.html#FILTER-POPUPS"
3161 TARGET="_top"
3162 >-filter{popups}</A
3163 >&nbsp;\<br>
3164 &nbsp;<A
3165 HREF="actions-file.html#FILTER-WEBBUGS"
3166 TARGET="_top"
3167 >+filter{webbugs}</A
3168 >&nbsp;\<br>
3169 &nbsp;<A
3170 HREF="actions-file.html#FILTER-REFRESH-TAGS"
3171 TARGET="_top"
3172 >-filter{refresh-tags}</A
3173 >&nbsp;\<br>
3174 &nbsp;<A
3175 HREF="actions-file.html#FILTER-FUN"
3176 TARGET="_top"
3177 >-filter{fun}</A
3178 >&nbsp;\<br>
3179 &nbsp;<A
3180 HREF="actions-file.html#FILTER-NIMDA"
3181 TARGET="_top"
3182 >+filter{nimda}</A
3183 >&nbsp;\<br>
3184 &nbsp;<A
3185 HREF="actions-file.html#FILTER-BANNERS-BY-SIZE"
3186 TARGET="_top"
3187 >+filter{banners-by-size}</A
3188 >&nbsp;\<br>
3189 &nbsp;<A
3190 HREF="actions-file.html#FILTER-SHOCKWAVE-FLASH"
3191 TARGET="_top"
3192 >-filter{shockwave-flash}</A
3193 >&nbsp;\<br>
3194 &nbsp;<A
3195 HREF="actions-file.html#FILTER-CRUDE-PARENTAL"
3196 TARGET="_top"
3197 >-filter{crude-prental}</A
3198 >&nbsp;\<br>
3199 &nbsp;<A
3200 HREF="actions-file.html#HIDE-FORWARDED-FOR-HEADERS"
3201 TARGET="_top"
3202 >+hide-forwarded-for-headers</A
3203 >&nbsp;\<br>
3204 &nbsp;<A
3205 HREF="actions-file.html#HIDE-FROM-HEADER"
3206 TARGET="_top"
3207 >+hide-from-header{block}</A
3208 >&nbsp;\<br>
3209 &nbsp;<A
3210 HREF="actions-file.html#HIDE-REFERER"
3211 TARGET="_top"
3212 >-hide-referrer</A
3213 >&nbsp;\<br>
3214 &nbsp;<A
3215 HREF="actions-file.html#HIDE-USER-AGENT"
3216 TARGET="_top"
3217 >-hide-user-agent</A
3218 >&nbsp;\<br>
3219 &nbsp;<A
3220 HREF="actions-file.html#HANDLE-AS-IMAGE"
3221 TARGET="_top"
3222 >-handle-as-image</A
3223 >&nbsp;\<br>
3224 &nbsp;<A
3225 HREF="actions-file.html#SET-IMAGE-BLOCKER"
3226 TARGET="_top"
3227 >+set-image-blocker{pattern}</A
3228 >&nbsp;\<br>
3229 &nbsp;<A
3230 HREF="actions-file.html#LIMIT-CONNECT"
3231 TARGET="_top"
3232 >-limit-connect</A
3233 >&nbsp;\<br>
3234 &nbsp;<A
3235 HREF="actions-file.html#PREVENT-COMPRESSION"
3236 TARGET="_top"
3237 >+prevent-compression</A
3238 >&nbsp;\<br>
3239 &nbsp;<A
3240 HREF="actions-file.html#SESSION-COOKIES-ONLY"
3241 TARGET="_top"
3242 >-session-cookies-only</A
3243 >&nbsp;\<br>
3244 &nbsp;<A
3245 HREF="actions-file.html#PREVENT-READING-COOKIES"
3246 TARGET="_top"
3247 >-prevent-reading-cookies</A
3248 >&nbsp;\<br>
3249 &nbsp;<A
3250 HREF="actions-file.html#PREVENT-SETTING-COOKIES"
3251 TARGET="_top"
3252 >-prevent-setting-cookies</A
3253 >&nbsp;\<br>
3254 &nbsp;<A
3255 HREF="actions-file.html#KILL-POPUPS"
3256 TARGET="_top"
3257 >-kill-popups</A
3258 >&nbsp;\<br>
3259 &nbsp;<A
3260 HREF="actions-file.html#SEND-VANILLA-WAFER"
3261 TARGET="_top"
3262 >-send-vanilla-wafer</A
3263 >&nbsp;\<br>
3264 &nbsp;<A
3265 HREF="actions-file.html#SEND-WAFER"
3266 TARGET="_top"
3267 >-send-wafer</A
3268 >&nbsp;\<br>
3269 &nbsp;}<br>
3270 &nbsp;/&nbsp;#&nbsp;forward&nbsp;slash&nbsp;will&nbsp;match&nbsp;*all*&nbsp;potential&nbsp;URL&nbsp;patterns.&nbsp;<br>
3271 <br>
3272 ##########################################################################<br>
3273 #&nbsp;Default&nbsp;behavior&nbsp;is&nbsp;now&nbsp;set.&nbsp;Now&nbsp;we&nbsp;will&nbsp;define&nbsp;some&nbsp;exceptions&nbsp;to&nbsp;our&nbsp;<br>
3274 #&nbsp;default&nbsp;action&nbsp;policies.<br>
3275 ##########################################################################<br>
3276 <br>
3277 #&nbsp;These&nbsp;sites&nbsp;are&nbsp;very&nbsp;complex&nbsp;and&nbsp;require&nbsp;very&nbsp;minimal&nbsp;interference.<br>
3278 #&nbsp;We'll&nbsp;disable&nbsp;most&nbsp;actions&nbsp;with&nbsp;our&nbsp;'fragile'&nbsp;alias:<br>
3279 &nbsp;{&nbsp;fragile&nbsp;}<br>
3280 &nbsp;.office.microsoft.com&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;surprise,&nbsp;surprise!<br>
3281 &nbsp;.windowsupdate.microsoft.com<br>
3282 <br>
3283 <br>
3284 #&nbsp;Shopping&nbsp;sites&nbsp;-&nbsp;not&nbsp;as&nbsp;fragile&nbsp;but&nbsp;require&nbsp;some&nbsp;special&nbsp;<br>
3285 #&nbsp;handling.&nbsp;We&nbsp;still&nbsp;want&nbsp;to&nbsp;block&nbsp;ads,&nbsp;and&nbsp;we&nbsp;will&nbsp;allow&nbsp;<br>
3286 #&nbsp;persistant&nbsp;cookies&nbsp;via&nbsp;the&nbsp;'shop'&nbsp;alias:<br>
3287 &nbsp;{&nbsp;shop&nbsp;}<br>
3288 &nbsp;.quietpc.com&nbsp;<br>
3289 &nbsp;.worldpay.com&nbsp;&nbsp;&nbsp;#&nbsp;for&nbsp;quietpc.com<br>
3290 &nbsp;.jungle.com<br>
3291 &nbsp;.scan.co.uk<br>
3292 <br>
3293 <br>
3294 #&nbsp;These&nbsp;sites&nbsp;require&nbsp;pop-ups&nbsp;too&nbsp;:(&nbsp;&nbsp;We'll&nbsp;combine&nbsp;our&nbsp;'shop'&nbsp;<br>
3295 #&nbsp;alias&nbsp;with&nbsp;two&nbsp;other&nbsp;actions&nbsp;into&nbsp;one&nbsp;rule&nbsp;to&nbsp;allow&nbsp;all&nbsp;popups.<br>
3296 &nbsp;{&nbsp;shop&nbsp;<A
3297 HREF="actions-file.html#KILL-POPUPS"
3298 TARGET="_top"
3299 >-kill-popups</A
3300 >&nbsp;<A
3301 HREF="actions-file.html#FILTER-POPUPS"
3302 TARGET="_top"
3303 >-filter{popups}</A
3304 >&nbsp;}<br>
3305 &nbsp;.dabs.com<br>
3306 &nbsp;.overclockers.co.uk<br>
3307 <br>
3308 <br>
3309 #&nbsp;The&nbsp;'Fast-redirects'&nbsp;action&nbsp;breaks&nbsp;some&nbsp;sites.&nbsp;Disable&nbsp;this&nbsp;action<br>
3310 #&nbsp;for&nbsp;these&nbsp;known&nbsp;sensitive&nbsp;sites:<br>
3311 &nbsp;{&nbsp;<A
3312 HREF="actions-file.html#FAST-REDIRECTS"
3313 TARGET="_top"
3314 >-fast-redirects</A
3315 >&nbsp;}<br>
3316 &nbsp;login.yahoo.com<br>
3317 &nbsp;edit.europe.yahoo.com<br>
3318 &nbsp;.google.com<br>
3319 &nbsp;.altavista.com/.*(like|url|link):http<br>
3320 &nbsp;.altavista.com/trans.*urltext=http<br>
3321 &nbsp;.nytimes.com<br>
3322 <br>
3323 <br>
3324 #&nbsp;Define&nbsp;which&nbsp;file&nbsp;types&nbsp;will&nbsp;be&nbsp;treated&nbsp;as&nbsp;images.&nbsp;Important<br>
3325 #&nbsp;for&nbsp;ad&nbsp;blocking.<br>
3326 &nbsp;{&nbsp;<A
3327 HREF="actions-file.html#HANDLE-AS-IMAGE"
3328 TARGET="_top"
3329 >+handle-as-image</A
3330 >&nbsp;}<br>
3331 &nbsp;/.*\.(gif|jpe?g|png|bmp|ico)<br>
3332 <br>
3333 <br>
3334 #&nbsp;Now&nbsp;lets&nbsp;list&nbsp;some&nbsp;domains&nbsp;that&nbsp;are&nbsp;known&nbsp;ad&nbsp;generators.&nbsp;And<br>
3335 #&nbsp;our&nbsp;alias&nbsp;that&nbsp;we&nbsp;use&nbsp;here&nbsp;will&nbsp;block&nbsp;these&nbsp;as&nbsp;well&nbsp;as&nbsp;force&nbsp;<br>
3336 #&nbsp;them&nbsp;to&nbsp;be&nbsp;treated&nbsp;as&nbsp;images.&nbsp;This&nbsp;combination&nbsp;of&nbsp;actions&nbsp;is&nbsp;<br>
3337 #&nbsp;important&nbsp;for&nbsp;ad&nbsp;blocking.&nbsp;What&nbsp;the&nbsp;browser&nbsp;will&nbsp;show&nbsp;instead&nbsp;is&nbsp;<br>
3338 #&nbsp;determined&nbsp;by&nbsp;the&nbsp;setting&nbsp;of&nbsp;<A
3339 HREF="actions-file.html#SET-IMAGE-BLOCKER"
3340 TARGET="_top"
3341 ><SPAN
3342 CLASS="QUOTE"
3343 >"+set-image-blocker"</SPAN
3344 ></A
3345 ><br>
3346 &nbsp;{&nbsp;+imageblock&nbsp;}<br>
3347 &nbsp;ar.atwola.com&nbsp;<br>
3348 &nbsp;.ad.doubleclick.net<br>
3349 &nbsp;.a.yimg.com/(?:(?!/i/).)*$<br>
3350 &nbsp;.a[0-9].yimg.com/(?:(?!/i/).)*$<br>
3351 &nbsp;bs*.gsanet.com<br>
3352 &nbsp;bs*.einets.com<br>
3353 &nbsp;.qkimg.net<br>
3354 &nbsp;ad.*.doubleclick.net<br>
3355 <br>
3356 <br>
3357 #&nbsp;These&nbsp;will&nbsp;just&nbsp;simply&nbsp;be&nbsp;blocked.&nbsp;They&nbsp;will&nbsp;generate&nbsp;the&nbsp;BLOCKED<br>
3358 #&nbsp;banner&nbsp;page,&nbsp;if&nbsp;matched.&nbsp;Heavy&nbsp;use&nbsp;of&nbsp;wildcards&nbsp;and&nbsp;regular&nbsp;<br>
3359 #&nbsp;expressions&nbsp;in&nbsp;this&nbsp;example.&nbsp;Enable&nbsp;block&nbsp;action:<br>
3360 &nbsp;{&nbsp;<A
3361 HREF="actions-file.html#BLOCK"
3362 TARGET="_top"
3363 >+block</A
3364 >&nbsp;}<br>
3365 &nbsp;ad*.<br>
3366 &nbsp;.*ads.<br>
3367 &nbsp;banner?.<br>
3368 &nbsp;count*.<br>
3369 &nbsp;/.*count(er)?\.(pl|cgi|exe|dll|asp|php[34]?)<br>
3370 &nbsp;/(?:.*/)?(publicite|werbung|rekla(ma|me|am)|annonse|maino(kset|nta|s)?)/<br>
3371 &nbsp;.hitbox.com&nbsp;<br>
3372 <br>
3373 <br>
3374 #&nbsp;The&nbsp;above&nbsp;block&nbsp;section&nbsp;will&nbsp;probably&nbsp;inadvertantly&nbsp;catch&nbsp;some&nbsp;<br>
3375 #&nbsp;sites&nbsp;we&nbsp;DO&nbsp;NOT&nbsp;want&nbsp;blocked&nbsp;via&nbsp;the&nbsp;wildcards&nbsp;and&nbsp;regular&nbsp;expressions.&nbsp;<br>
3376 #&nbsp;Now&nbsp;let's&nbsp;set&nbsp;exceptions&nbsp;to&nbsp;the&nbsp;exceptions&nbsp;so&nbsp;the&nbsp;good&nbsp;guys&nbsp;get&nbsp;better&nbsp;<br>
3377 #&nbsp;treatment.&nbsp;Disable&nbsp;block&nbsp;action:<br>
3378 &nbsp;{&nbsp;<A
3379 HREF="actions-file.html#BLOCK"
3380 TARGET="_top"
3381 >-block</A
3382 >&nbsp;}<br>
3383 &nbsp;advogato.org<br>
3384 &nbsp;adsl.<br>
3385 &nbsp;ad[ud]*.<br>
3386 &nbsp;advice.<br>
3387 #&nbsp;Let's&nbsp;just&nbsp;trust&nbsp;all&nbsp;.edu&nbsp;top&nbsp;level&nbsp;domains.<br>
3388 &nbsp;.edu<br>
3389 &nbsp;www.ugu.com/sui/ugu/adv<br>
3390 #&nbsp;We'll&nbsp;need&nbsp;to&nbsp;access&nbsp;to&nbsp;path&nbsp;names&nbsp;containing&nbsp;'download'&nbsp;<br>
3391 &nbsp;.*downloads.<br>
3392 &nbsp;/downloads/<br>
3393 #&nbsp;'adv'&nbsp;is&nbsp;for&nbsp;globalintersec&nbsp;and&nbsp;means&nbsp;advanced,&nbsp;not&nbsp;advertisement<br>
3394 &nbsp;www.globalintersec.com/adv<br>
3395 <br>
3396 <br>
3397 #&nbsp;Don't&nbsp;filter&nbsp;*anything*&nbsp;from&nbsp;our&nbsp;friends&nbsp;at&nbsp;sourceforge.<br>
3398 #&nbsp;Notice&nbsp;we&nbsp;don't&nbsp;have&nbsp;to&nbsp;name&nbsp;the&nbsp;individual&nbsp;filter&nbsp;<br>
3399 #&nbsp;identifiers&nbsp;--&nbsp;we&nbsp;just&nbsp;turn&nbsp;them&nbsp;all&nbsp;off&nbsp;in&nbsp;one&nbsp;fell&nbsp;swoop.<br>
3400 #&nbsp;Disable&nbsp;all&nbsp;filters&nbsp;for&nbsp;this&nbsp;one&nbsp;site:<br>
3401 &nbsp;{&nbsp;<A
3402 HREF="actions-file.html#FILTER"
3403 TARGET="_top"
3404 >-filter</A
3405 >&nbsp;}<br>
3406 &nbsp;.sourceforge.net<br>
3407 &nbsp;&nbsp;&nbsp;</P
3408
3409  </TT
3410 ></P
3411 ><P
3412 > So far we are painting with a broad brush by setting general policies. 
3413  The above would be a reasonable starting point for many situations. Now, 
3414  we want to be more specific and have customized rules that are more suitable
3415  to our personal habits and preferences. These would be for narrowly defined 
3416  situations like your ISP or your bank, and should be placed in 
3417  <TT
3418 CLASS="FILENAME"
3419 >user.action</TT
3420 >, which is parsed after all other 
3421  actions files and should not be clobbered by upgrades. So any settings here,
3422  will have the last word and over-ride any previously defined actions.</P
3423 ><P
3424 > Now a few examples of some things that one might do with a
3425  <TT
3426 CLASS="FILENAME"
3427 >user.action</TT
3428 > file. </P
3429 ><P
3430 > <TT
3431 CLASS="LITERAL"
3432 >  <P
3433 CLASS="LITERALLAYOUT"
3434 >#&nbsp;Sample&nbsp;user.action&nbsp;file.<br>
3435 <br>
3436 #&nbsp;Any&nbsp;aliases&nbsp;you&nbsp;want&nbsp;to&nbsp;use&nbsp;need&nbsp;to&nbsp;be&nbsp;re-defined&nbsp;here.<br>
3437 #&nbsp;Alias&nbsp;to&nbsp;turn&nbsp;off&nbsp;cookie&nbsp;handling,&nbsp;ie&nbsp;allow&nbsp;all&nbsp;cookies&nbsp;unmolested.<br>
3438 &nbsp;-prevent-cookies&nbsp;=&nbsp;-prevent-setting-cookies&nbsp;-prevent-reading-cookies&nbsp;\<br>
3439 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-session-cookies-only<br>
3440 <br>
3441 #&nbsp;Fragile&nbsp;sites&nbsp;should&nbsp;have&nbsp;the&nbsp;minimum&nbsp;changes:<br>
3442 &nbsp;fragile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;-block&nbsp;-deanimate-gifs&nbsp;-fast-redirects&nbsp;-filter&nbsp;-hide-referer&nbsp;\<br>
3443 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-prevent-cookies&nbsp;-kill-popups<br>
3444 <br>
3445 #&nbsp;Allow&nbsp;persistent&nbsp;cookies&nbsp;for&nbsp;a&nbsp;few&nbsp;regular&nbsp;sites&nbsp;that&nbsp;we&nbsp;<br>
3446 #&nbsp;trust&nbsp;via&nbsp;our&nbsp;above&nbsp;alias.&nbsp;These&nbsp;will&nbsp;be&nbsp;saved&nbsp;from&nbsp;one&nbsp;browser&nbsp;session&nbsp;<br>
3447 #&nbsp;to&nbsp;the&nbsp;next.&nbsp;We&nbsp;are&nbsp;explicity&nbsp;turning&nbsp;off&nbsp;any&nbsp;and&nbsp;all&nbsp;cookie&nbsp;handling,&nbsp;<br>
3448 #&nbsp;even&nbsp;though&nbsp;the&nbsp;prevent-*-cookie&nbsp;settings&nbsp;were&nbsp;disabled&nbsp;in&nbsp;our&nbsp;above&nbsp;<br>
3449 #&nbsp;default.action&nbsp;anyway.&nbsp;So&nbsp;cookies&nbsp;from&nbsp;these&nbsp;domains&nbsp;will&nbsp;come&nbsp;through&nbsp;<br>
3450 #&nbsp;unmolested.<br>
3451 &nbsp;{&nbsp;-prevent-cookies&nbsp;}<br>
3452 &nbsp;.sun.com<br>
3453 &nbsp;.yahoo.com<br>
3454 &nbsp;.msdn.microsoft.com<br>
3455 &nbsp;.redhat.com<br>
3456 <br>
3457 <br>
3458 #&nbsp;My&nbsp;ISP&nbsp;uses&nbsp;obnoxious&nbsp;self&nbsp;promoting&nbsp;images&nbsp;on&nbsp;many&nbsp;pages.<br>
3459 #&nbsp;Nuke&nbsp;them&nbsp;:)&nbsp;Note&nbsp;that&nbsp;<A
3460 HREF="actions-file.html#HANDLE-AS-IMAGE"
3461 TARGET="_top"
3462 ><SPAN
3463 CLASS="QUOTE"
3464 >"+handle-as-image"</SPAN
3465 ></A
3466 >&nbsp;need&nbsp;not&nbsp;be&nbsp;specified,<br>
3467 #&nbsp;since&nbsp;all&nbsp;URLs&nbsp;ending&nbsp;in&nbsp;.gif&nbsp;will&nbsp;be&nbsp;tagged&nbsp;as&nbsp;images&nbsp;by&nbsp;the<br>
3468 #&nbsp;general&nbsp;rules&nbsp;in&nbsp;default.action&nbsp;anyway.<br>
3469 &nbsp;{&nbsp;<A
3470 HREF="actions-file.html#BLOCK"
3471 TARGET="_top"
3472 >+block</A
3473 >&nbsp;}<br>
3474 &nbsp;www.my-isp-example.com/logo[0-9].gif<br>
3475 <br>
3476 <br>
3477 #&nbsp;Say&nbsp;the&nbsp;site&nbsp;where&nbsp;you&nbsp;do&nbsp;your&nbsp;homebanking&nbsp;needs&nbsp;to&nbsp;open<br>
3478 #&nbsp;popup&nbsp;windows,&nbsp;but&nbsp;you&nbsp;have&nbsp;chosen&nbsp;to&nbsp;kill&nbsp;popups&nbsp;by<br>
3479 #&nbsp;default.&nbsp;This&nbsp;will&nbsp;allow&nbsp;it&nbsp;for&nbsp;your-example-bank.com:<br>
3480 #<br>
3481 &nbsp;{&nbsp;<A
3482 HREF="actions-file.html#FILTER-POPUPS"
3483 TARGET="_top"
3484 >-filter{popups}</A
3485 >&nbsp;<A
3486 HREF="actions-file.html#KILL-POPUPS"
3487 TARGET="_top"
3488 >-kill-popups</A
3489 >&nbsp;}<br>
3490 &nbsp;.my-example-bank.com<br>
3491 <br>
3492 <br>
3493 #&nbsp;This&nbsp;site&nbsp;is&nbsp;delicate,&nbsp;and&nbsp;requires&nbsp;kid-glove&nbsp;<br>
3494 #&nbsp;treatment.<br>
3495 &nbsp;{&nbsp;fragile&nbsp;}<br>
3496 &nbsp;.forbes.com<br>
3497 &nbsp;&nbsp;&nbsp;</P
3498
3499  </TT
3500 ></P
3501 ></DIV
3502 ></DIV
3503 ><DIV
3504 CLASS="SECT2"
3505 ><H2
3506 CLASS="SECT2"
3507 ><A
3508 NAME="ALIASES"
3509 >8.6. Aliases</A
3510 ></H2
3511 ><P
3512 > Custom <SPAN
3513 CLASS="QUOTE"
3514 >"actions"</SPAN
3515 >, known to <SPAN
3516 CLASS="APPLICATION"
3517 >Privoxy</SPAN
3518 >
3519  as <SPAN
3520 CLASS="QUOTE"
3521 >"aliases"</SPAN
3522 >, can be defined by combining other <SPAN
3523 CLASS="QUOTE"
3524 >"actions"</SPAN
3525 >.
3526  These can in turn be invoked just like the built-in <SPAN
3527 CLASS="QUOTE"
3528 >"actions"</SPAN
3529 >.
3530  Currently, an alias can contain any character except space, tab, <SPAN
3531 CLASS="QUOTE"
3532 >"="</SPAN
3533 >,
3534  <SPAN
3535 CLASS="QUOTE"
3536 >"{"</SPAN
3537 > or <SPAN
3538 CLASS="QUOTE"
3539 >"}"</SPAN
3540 >. But please use only <SPAN
3541 CLASS="QUOTE"
3542 >"a"</SPAN
3543 >-
3544  <SPAN
3545 CLASS="QUOTE"
3546 >"z"</SPAN
3547 >, <SPAN
3548 CLASS="QUOTE"
3549 >"0"</SPAN
3550 >-<SPAN
3551 CLASS="QUOTE"
3552 >"9"</SPAN
3553 >, <SPAN
3554 CLASS="QUOTE"
3555 >"+"</SPAN
3556 >, and
3557  <SPAN
3558 CLASS="QUOTE"
3559 >"-"</SPAN
3560 >. Alias names are not case sensitive, and 
3561  <I
3562 CLASS="EMPHASIS"
3563 >must be defined before other actions</I
3564 > in the
3565  actions file! And there can only be one set of <SPAN
3566 CLASS="QUOTE"
3567 >"aliases"</SPAN
3568 >
3569  defined per file. Each actions file may have its own aliases, but they are 
3570  only visible within that file. Aliases do not requir a <SPAN
3571 CLASS="QUOTE"
3572 >"+"</SPAN
3573 > or 
3574  <SPAN
3575 CLASS="QUOTE"
3576 >"-"</SPAN
3577 > sign in front, since they are merely expanded.</P
3578 ><P
3579 > Now let's define a few aliases:</P
3580 ><P
3581 > <TT
3582 CLASS="LITERAL"
3583 >  <P
3584 CLASS="LITERALLAYOUT"
3585 >&nbsp;#&nbsp;Useful&nbsp;custom&nbsp;aliases&nbsp;we&nbsp;can&nbsp;use&nbsp;later.&nbsp;These&nbsp;must&nbsp;come&nbsp;first!<br>
3586 &nbsp;{{alias}}<br>
3587 &nbsp;+prevent-cookies&nbsp;=&nbsp;+prevent-setting-cookies&nbsp;+prevent-reading-cookies<br>
3588 &nbsp;-prevent-cookies&nbsp;=&nbsp;-prevent-setting-cookies&nbsp;-prevent-reading-cookies<br>
3589 &nbsp;fragile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;-block&nbsp;-prevent-cookies&nbsp;-filter&nbsp;-fast-redirects&nbsp;-hide-referer&nbsp;-kill-popups<br>
3590 &nbsp;shop&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;-prevent-cookies&nbsp;-filter&nbsp;-fast-redirects<br>
3591 &nbsp;+imageblock&nbsp;=&nbsp;+block&nbsp;+handle-as-image<br>
3592 <br>
3593 &nbsp;#&nbsp;Aliases&nbsp;defined&nbsp;from&nbsp;other&nbsp;aliases,&nbsp;for&nbsp;people&nbsp;who&nbsp;don't&nbsp;like&nbsp;to&nbsp;type&nbsp;<br>
3594 &nbsp;#&nbsp;too&nbsp;much:&nbsp;&nbsp;;-)<br>
3595 &nbsp;c0&nbsp;=&nbsp;+prevent-cookies<br>
3596 &nbsp;c1&nbsp;=&nbsp;-prevent-cookies<br>
3597 &nbsp;#...&nbsp;etc.&nbsp;&nbsp;Customize&nbsp;to&nbsp;your&nbsp;heart's&nbsp;content.<br>
3598 &nbsp;&nbsp;&nbsp;</P
3599
3600  </TT
3601 ></P
3602 ><P
3603 > Some examples using our <SPAN
3604 CLASS="QUOTE"
3605 >"shop"</SPAN
3606 > and <SPAN
3607 CLASS="QUOTE"
3608 >"fragile"</SPAN
3609 >
3610  aliases from above. These would appear in the lower sections of an 
3611  actions file as exceptions to the default actions (as defined in the 
3612  upper section):</P
3613 ><P
3614 > <TT
3615 CLASS="LITERAL"
3616 >  <P
3617 CLASS="LITERALLAYOUT"
3618 >&nbsp;#&nbsp;These&nbsp;sites&nbsp;are&nbsp;very&nbsp;complex&nbsp;and&nbsp;require<br>
3619 &nbsp;#&nbsp;minimal&nbsp;interference.<br>
3620 &nbsp;{fragile}<br>
3621 &nbsp;&nbsp;.office.microsoft.com<br>
3622 &nbsp;&nbsp;.windowsupdate.microsoft.com<br>
3623 &nbsp;&nbsp;.nytimes.com<br>
3624 <br>
3625 &nbsp;#&nbsp;Shopping&nbsp;sites&nbsp;-&nbsp;but&nbsp;we&nbsp;still&nbsp;want&nbsp;to&nbsp;block&nbsp;ads.<br>
3626 &nbsp;{shop}<br>
3627 &nbsp;&nbsp;.quietpc.com<br>
3628 &nbsp;&nbsp;.worldpay.com&nbsp;&nbsp;&nbsp;#&nbsp;for&nbsp;quietpc.com<br>
3629 &nbsp;&nbsp;.scan.co.uk<br>
3630 <br>
3631 &nbsp;#&nbsp;These&nbsp;shops&nbsp;require&nbsp;pop-ups&nbsp;also&nbsp;<br>
3632 &nbsp;{shop&nbsp;-kill-popups}<br>
3633 &nbsp;&nbsp;.dabs.com<br>
3634 &nbsp;&nbsp;.overclockers.co.uk<br>
3635 &nbsp;&nbsp;&nbsp;</P
3636
3637  </TT
3638 ></P
3639 ><P
3640 > The <SPAN
3641 CLASS="QUOTE"
3642 >"shop"</SPAN
3643 > and <SPAN
3644 CLASS="QUOTE"
3645 >"fragile"</SPAN
3646 > aliases are often used for 
3647  <SPAN
3648 CLASS="QUOTE"
3649 >"problem"</SPAN
3650 > sites that require most actions to be disabled 
3651  in order to function properly.&#13;</P
3652 ></DIV
3653 ></DIV
3654 ><DIV
3655 CLASS="NAVFOOTER"
3656 ><HR
3657 ALIGN="LEFT"
3658 WIDTH="100%"><TABLE
3659 WIDTH="100%"
3660 BORDER="0"
3661 CELLPADDING="0"
3662 CELLSPACING="0"
3663 ><TR
3664 ><TD
3665 WIDTH="33%"
3666 ALIGN="left"
3667 VALIGN="top"
3668 ><A
3669 HREF="config.html"
3670 >Prev</A
3671 ></TD
3672 ><TD
3673 WIDTH="34%"
3674 ALIGN="center"
3675 VALIGN="top"
3676 ><A
3677 HREF="index.html"
3678 >Home</A
3679 ></TD
3680 ><TD
3681 WIDTH="33%"
3682 ALIGN="right"
3683 VALIGN="top"
3684 ><A
3685 HREF="filter-file.html"
3686 >Next</A
3687 ></TD
3688 ></TR
3689 ><TR
3690 ><TD
3691 WIDTH="33%"
3692 ALIGN="left"
3693 VALIGN="top"
3694 >The Main Configuration File</TD
3695 ><TD
3696 WIDTH="34%"
3697 ALIGN="center"
3698 VALIGN="top"
3699 >&nbsp;</TD
3700 ><TD
3701 WIDTH="33%"
3702 ALIGN="right"
3703 VALIGN="top"
3704 >The Filter File</TD
3705 ></TR
3706 ></TABLE
3707 ></DIV
3708 ></BODY
3709 ></HTML
3710 >