X-Git-Url: http://www.privoxy.org/gitweb/?a=blobdiff_plain;f=default.filter;h=0929ec2252de209bb630983ab8b008fb5b9c62cf;hb=6a9d66068b2b0122ad937648d17dd20204db2898;hp=b4904b831596418ba6d0eef98212961d17ba71ff;hpb=97110184221edacdb7d4dfc29de0e38d63f4d831;p=privoxy.git
diff --git a/default.filter b/default.filter
index b4904b83..0929ec22 100644
--- a/default.filter
+++ b/default.filter
@@ -2,237 +2,415 @@
#
# File : $Source: /cvsroot/ijbswa/current/default.filter,v $
#
+# $Id: default.filter,v 1.84 2012/03/18 15:45:44 fabiankeil Exp $
+#
# Purpose : Rules to process the content of web pages
#
-# Copyright : Written by and Copyright (C) 2001 the SourceForge
+# Copyright : Written by and Copyright (C) 2001-2010 the
# Privoxy team. http://www.privoxy.org/
+#
+# We value your feedback. However, to provide you with the best support,
+# please note:
+#
+# * Use the support forum to get help:
+# http://sourceforge.net/tracker/?group_id=11118&atid=211118
+# * Submit bugs only thru our bug forum:
+# http://sourceforge.net/tracker/?group_id=11118&atid=111118
+# Make sure that the bug has not already been submitted. Please try
+# to verify that it is a Privoxy bug, and not a browser or site
+# bug first. If you are using your own custom configuration, please
+# try the stock configs to see if the problem is a configuration
+# related bug. And if not using the latest development snapshot,
+# please try the latest one. Or even better, CVS sources.
+# * Submit feature requests only thru our feature request forum:
+# http://sourceforge.net/tracker/?atid=361118&group_id=11118&func=browse
+#
+# For any other issues, feel free to use the mailing lists:
+# http://sourceforge.net/mail/?group_id=11118
+#
+# Anyone interested in actively participating in development and related
+# discussions can join the appropriate mailing list here:
+# http://sourceforge.net/mail/?group_id=11118. Archives are available
+# here too.
#
-# This program is free software; you can redistribute it
-# and/or modify it under the terms of the GNU General
-# Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will
-# be useful, but WITHOUT ANY WARRANTY; without even the
-# implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE. See the GNU General Public
-# License for more details.
-#
-# The GNU General Public License should be included with
-# this file. If not, you can view it at
-# http://www.gnu.org/copyleft/gpl.html
-# or write to the Free Software Foundation, Inc., 59
-# Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# Revisions :
-# $Log: default.filter,v $
-# Revision 1.3 2002/03/24 16:08:03 jongfoster
-# Fixing banners-by-size for new config URLs
+#################################################################################
#
-# Revision 1.2 2002/03/24 13:02:18 swa
-# name change related issues.
+# Syntax:
#
-# Revision 1.1 2002/03/24 11:37:39 jongfoster
-# Name change
+# Generally filters start with a line like "FILTER: name description".
+# They are then referrable from the actionsfile with +filter{name}
#
-# Revision 1.24 2002/03/16 20:39:54 oes
-# - Added descriptions to the filters so users will know what they select in the cgi editor
-# - Added content-cookies filter
-# - Bugfixed many jobs (Thanks to Al for some hints)
+# FILTER marks a filter as content filter, other filter
+# types are CLIENT-HEADER-FILTER, CLIENT-HEADER-TAGGER,
+# SERVER-HEADER-FILTER and SERVER-HEADER-TAGGER.
#
-# Revision 1.22 2002/03/12 13:42:50 oes
-# Fixing & Optimizing REs
+# Inside the filters, write one Perl-Style substitution (job) per line.
+# Jobs that precede the first FILTER: line are ignored.
#
-# Revision 1.21 2002/03/12 11:59:20 oes
-# Beefed up Buzzword Bingo
+# For Details see the pcrs manpage contained in this distribution.
+# (and the perlre, perlop and pcre manpages)
#
-# Revision 1.20 2002/03/12 01:42:50 oes
-# Introduced modular filters
+# Note that you are free to choose the delimiter as you see fit.
#
-# Revision 1.19 2002/03/10 19:49:24 oes
-# Added expression to kill referer tracking in JavaScripts
+# 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.
#
-# Revision 1.18 2002/03/08 17:14:12 oes
-# PNG -> image in comments
+# 'T' (trivial) prevents parsing for backreferences in the substitute.
+# Use if you want to include text like '$&' in your substitute without
+# quoting.
#
-# Revision 1.17 2002/03/07 03:50:54 oes
-# Adapted comments to new built-in images
+# 'D' (Dynamic) allows the use of variables. Supported variables are:
+# $host, $origin (the IP address the request came from), $path and $url.
#
-# Revision 1.16 2002/02/21 00:12:19 jongfoster
-# Modifying the banner regexps to use long URLS and to autodetect
-# whether to show a logo or a transparent GIF, based on actionsfile
-# setting.
+# 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.
+#
+#################################################################################
+
+
+#################################################################################
#
-# Revision 1.15 2001/12/28 23:54:20 steudten
-# Fix for feature Req #495374: http-equiv problem
+# js-annoyances: Get rid of particularly annoying JavaScript abuse.
#
-# Revision 1.14 2001/12/09 18:55:11 david__schmidt
-# Updated CODE_STATUS to beta, commented out microsuck line in re_filterfile
-# for 2.9.10 beta
+#################################################################################
+FILTER: js-annoyances Get rid of particularly annoying JavaScript abuse.
+
+# 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
#
-# Revision 1.8 2001/06/29 13:34:00 oes
-# - Added explanation for U and T options
-# - Added hint on image replacement by CGI call
-# - Fixed bug in banner-by-size jobs
+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
+
+
+#################################################################################
#
-# Revision 1.7 2001/06/19 14:21:56 oes
-# Fixed microsuck line
+# js-events: Kill JavaScript event bindings and timers (Radically destructive! Only for extra nasty sites).
#
-# Revision 1.6 2001/06/09 14:01:57 swa
-# header. cosmetics. default: no messing ala microsuck.
+#################################################################################
+FILTER: js-events Kill JavaScript 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/set(timeout|interval)\(/concat(/ig
+
+#################################################################################
#
+# html-annoyances: Get rid of particularly annoying HTML abuse.
#
-#
-
#################################################################################
+FILTER: html-annoyances Get rid of particularly annoying HTML abuse.
+
+# New browser windows (if allowed -- see no-popups filter below) should be
+# resizeable and have a location and status bar
#
-# Syntax:
+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
+
+# The