X-Git-Url: http://www.privoxy.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=default.filter;h=5a629c3a49b9bc1a6543b46eba0856259b509a62;hb=3ea70a193e1a90bd38cf01b4203e278e9743028a;hp=485033a2cfd68db756494bb75c04e246dde4892a;hpb=bbf475b8a0ad0101711e542e3ae60dd54359a568;p=privoxy.git
diff --git a/default.filter b/default.filter
index 485033a2..5a629c3a 100644
--- a/default.filter
+++ b/default.filter
@@ -2,11 +2,11 @@
#
# File : $Source: /cvsroot/ijbswa/current/default.filter,v $
#
-# $Id: default.filter,v 1.10 2002/04/18 10:14:19 oes Exp $
+# $Id: default.filter,v 1.71 2009/03/01 18:33:17 ler762 Exp $
#
# Purpose : Rules to process the content of web pages
#
-# Copyright : Written by and Copyright
+# Copyright : Written by and Copyright (C) 2001-2009 the
# Privoxy team. http://www.privoxy.org/
#
# We value your feedback. However, to provide you with the best support,
@@ -37,8 +37,12 @@
#
# Syntax:
#
-# Filters start with a line "FILTER: name description". They are then referrable
-# from the actionsfile with +filter{name}
+# Generally filters start with a line like "FILTER: name description".
+# They are then referrable from the actionsfile with +filter{name}
+#
+# FILTER marks a filter as content filter, other filter
+# types are CLIENT-HEADER-FILTER, CLIENT-HEADER-TAGGER,
+# SERVER-HEADER-FILTER and SERVER-HEADER-TAGGER.
#
# Inside the filters, write one Perl-Style substitution (job) per line.
# Jobs that precede the first FILTER: line are ignored.
@@ -46,123 +50,367 @@
# For Details see the pcrs manpage contained in this distribution.
# (and the perlre, perlop and pcre manpages)
#
-# Note that you are free to choose the delimter as you see fit.
+# Note that you are free to choose the delimiter as you see fit.
#
-# Note2: In addidion to the Perl options gimsx, the following nonstandard
+# Note2: In addition to the Perl options gimsx, the following nonstandard
# options are supported:
#
# 'U' turns the default to ungreedy matching. Add ? to quantifiers to
# switch back to greedy.
+#
# 'T' (trivial) prevents parsing for backreferences in the substitute.
# Use if you want to include text like '$&' in your substitute without
# quoting.
+#
+# 'D' (Dynamic) allows the use of variables. Supported variables are:
+# $host, $origin (the IP address the request came from), $path and $url.
+#
+# Note that '$' is a bad choice as delimiter for dynamic filters as you
+# might end up with unintended variables if you use a variable name
+# directly after the delimiter. Variables will be resolved without
+# escaping anything, therefore you also have to be careful not to chose
+# delimiters that appear in the replacement text. For example '<' should
+# be save, while '?' will sooner or later cause conflicts with $url.
#
#################################################################################
#################################################################################
#
-# html-annoyances: Get rid of particularly annoying HTML abuse
+# js-annoyances: Get rid of particularly annoying JavaScript abuse.
#
#################################################################################
-FILTER: html-annoyances Get rid of particularly annoying HTML abuse
+FILTER: js-annoyances Get rid of particularly annoying JavaScript abuse.
-# New browser windows (if allowed -- see no-popups filter below) should be
-# resizeable and have a location and status bar
+# Note: Most of these jobs would be safer if restricted to a
+# )|$1never|sigU
+
+# If we allow window.open, we want normal window features:
+# Test: http://www.htmlgoodies.com/beyond/notitle.html
+#
+s/(open\s*\([^\)]+resizable=)(["']?)(?:no|0)\2/$1$2yes$2/sigU
+s/(open\s*\([^\)]+location=)(["']?)(?:no|0)\2/$1$2yes$2/sigU
+s/(open\s*\([^\)]+status=)(["']?)(?:no|0)\2/$1$2yes$2/sigU
+s/(open\s*\([^\)]+scroll(?:ing|bars)=)(["']?)(?:no|0)\2/$1$2auto$2/sigU
+s/(open\s*\([^\)]+menubar=)(["']?)(?:no|0)\2/$1$2yes$2/sigU
+s/(open\s*\([^\)]+toolbar=)(["']?)(?:no|0)\2/$1$2yes$2/sigU
+s/(open\s*\([^\)]+directories=)(["']?)(?:no|0)\2/$1$2yes$2/sigU
+s/(open\s*\([^\)]+fullscreen=)(["']?)(?:yes|1)\2/$1$2no$2/sigU
+s/(open\s*\([^\)]+always(?:raised|lowered)=)(["']?)(?:yes|1)\2/$1$2no$2/sigU
+s/(open\s*\([^\)]+z-?lock=)(["']?)(?:yes|1)\2/$1$2no$2/sigU
+s/(open\s*\([^\)]+hotkeys=)(["']?)(?:yes|1)\2/$1$2no$2/sigU
+s/(open\s*\([^\)]+titlebar=)(["']?)(?:no|0)\2/$1$2yes$2/sigU
+s/(open\s*\([^\)]+always(?:raised|lowered)=)(["']?)(?:yes|1)\2/$1$2no$2/sigU
#################################################################################
#
-# js-annoyances: Get rid of particularly annoying JavaScript abuse
+# js-events: Kill all JS event bindings and timers (Radically destructive! Only for extra nasty sites).
#
#################################################################################
-FILTER: js-annoyances Get rid of particularly annoying JavaScript abuse
+FILTER: js-events Kill all JS event bindings and timers (Radically destructive! Only for extra nasty sites).
+
+s/(on|event\.)((mouse(over|out|down|up|move))|(un)?load|contextmenu|selectstart)/never/ig
+# Not events, but abused on the same type of sites:
+s/(alert|confirm)\s*\(/concat(/ig
+s/settimeout\(/concat(/ig
-# Get rid of Javascript referrer tracking. Test page: http://www.randomoddness.com/untitled.htm
+#################################################################################
+#
+# html-annoyances: Get rid of particularly annoying HTML abuse.
#
-s|()|$1"Not Your Business!"$2|Usg
+#################################################################################
+FILTER: html-annoyances Get rid of particularly annoying HTML abuse.
-# The status bar is for displaying link targets, not pointless blahblah
+# New browser windows (if allowed -- see no-popups filter below) should be
+# resizeable and have a location and status bar
#
-s/window.status\s*=\s*['"].*?['"]/dUmMy=1/ig
+s/(]+resizable=)(['"]?)(?:no|0)\2/$1$2yes$2/igU
+s/(]+location=)(['"]?)(?:no|0)\2/$1$2yes$2/igU
+s/(]+status=)(['"]?)(?:no|0)\2/$1$2yes1$2/igU
+s/(]+scrolling=)(['"]?)(?:no|0)\2/$1$2auto$2/igU
+s/(]+menubar=)(['"]?)(?:no|0)\2/$1$2yes$2/igU
-# Kill OnUnload popups. Yummy. Test: http://www.zdnet.com/zdsubs/yahoo/tree/yfs.html
+# The