www.fabiankeil.de/blog-surrogat/2006/04/05/privoxy-erweiterung-conditional-block.html
+hide-referrer{conditional-block}
In Privoxy 3.0.3 kann der
hide-referrer
-Filter den Referer komplett entfernen,
ihn mit einem konstanten Wert überschreiben, oder die Homepage als Referer angeben.
Alle drei Optionen habe den Vorteil, dem Webserver-Betreiber nicht die vorherige Adresse zu verraten, können vom Webserver-Betreiber aber dazu genutzt werden, den Privoxy-Nutzer vom Durchschnittsnutzer zu unterscheiden. Wenn die im Referer angegebene Seite keinen Link zur aufgerufenen Seite enthält, wird der Surfer seine Finger im Spiel haben.
Den Referer zu unterdrücken lohnt sich eigentlich nur beim Wechsel des Hosts. Wird der Host nicht gewechselt, liefert der Referer im Normalfall keine Daten, die der Server-Betreiber nicht auch anders gewinnen könnte.
Ein Klickpfad lässt sich auch über die IP-Nummer erstellen, wenn die IP-Nummer über Tor regelmäßig gewechselt wird ist der Privoxy-Nutzer auf kleineren Websites immer noch über den gefälschten Referer zu erkennen.
hide-referrer
-Option
Um das Problem zu lösen habe ich hide-referrer
um den Parameter conditional-block
erweitert. Der Referer wird damit nur noch dann entfernt, wenn der Host gewechselt wurde (oder wenn der Speicher
extrem knapp ist, was nicht vorkommen sollte).
debug 8
Wenn ich +hide-referrer{conditional-block} aktiviere und meine Link-Seite durch manuelle Eingabe der Adresse aufrufe sendet Firefox keinen Referer mit, der Filter muss nichts tun:
Apr 05 18:16:32 Privoxy(135133696) Header: New HTTP Request-Line: GET /links.html HTTP/1.1 Apr 05 18:16:32 Privoxy(135133696) Header: scan: GET /links.html HTTP/1.1 Apr 05 18:16:32 Privoxy(135133696) Header: scan: Host: www.fabiankeil.de Apr 05 18:16:32 Privoxy(135133696) Header: scan: User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.8.0.1) Gecko/20060401 Firefox/1.5.0.1 Apr 05 18:16:32 Privoxy(135133696) Header: scan: Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Apr 05 18:16:32 Privoxy(135133696) Header: scan: Accept-Language: en,en-us;q=0.5 Apr 05 18:16:32 Privoxy(135133696) Header: scan: Accept-Encoding: gzip,deflate Apr 05 18:16:32 Privoxy(135133696) Header: scan: Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Apr 05 18:16:32 Privoxy(135133696) Header: scan: Keep-Alive: 600 Apr 05 18:16:32 Privoxy(135133696) Header: scan: Proxy-Connection: keep-alive Apr 05 18:16:32 Privoxy(135133696) Header: scan: Pragma: no-cache Apr 05 18:16:32 Privoxy(135133696) Header: scan: Cache-Control: no-cache Apr 05 18:16:32 Privoxy(135133696) Header: Modified: User-Agent: Ich bin's Apr 05 18:16:32 Privoxy(135133696) Header: Suppressed offer to compress content Apr 05 18:16:32 Privoxy(135133696) Header: crumble crunched: Keep-Alive: 600! Apr 05 18:16:32 Privoxy(135133696) Header: crumble crunched: Proxy-Connection: keep-alive! Apr 05 18:16:32 Privoxy(135133696) Header: addh-unique: Host: www.fabiankeil.de Apr 05 18:16:32 Privoxy(135133696) Request: www.fabiankeil.de/links.html Apr 05 18:16:47 Privoxy(135133696) Header: scan: HTTP/1.1 200 OK Apr 05 18:16:47 Privoxy(135133696) Header: scan: Date: Wed, 05 Apr 2006 16:16:44 GMT Apr 05 18:16:47 Privoxy(135133696) Header: scan: Server: Apache/df-exts 1.2 (Unix) mod_ssl/2.8.22 OpenSSL/0.9.7d AuthPG/1.3 Apr 05 18:16:47 Privoxy(135133696) Header: scan: Last-Modified: Sun, 19 Mar 2006 15:43:01 GMT Apr 05 18:16:47 Privoxy(135133696) Header: scan: ETag: "25831d-15ae-441d7c05" Apr 05 18:16:47 Privoxy(135133696) Header: scan: Accept-Ranges: bytes Apr 05 18:16:47 Privoxy(135133696) Header: scan: Content-Length: 5550 Apr 05 18:16:47 Privoxy(135133696) Header: scan: Connection: close Apr 05 18:16:47 Privoxy(135133696) Header: scan: Content-Type: text/html Apr 05 18:16:47 Privoxy(135133696) Header: crumble crunched: Connection: close! Apr 05 18:16:47 Privoxy(135133696) Header: scan: HTTP/1.1 200 OK Apr 05 18:16:47 Privoxy(135133696) Header: scan: Date: Wed, 05 Apr 2006 16:16:44 GMT Apr 05 18:16:47 Privoxy(135133696) Header: scan: Server: Apache/df-exts 1.2 (Unix) mod_ssl/2.8.22 OpenSSL/0.9.7d AuthPG/1.3 Apr 05 18:16:47 Privoxy(135133696) Header: scan: Last-Modified: Sun, 19 Mar 2006 15:43:01 GMT Apr 05 18:16:47 Privoxy(135133696) Header: scan: ETag: "25831d-15ae-441d7c05" Apr 05 18:16:47 Privoxy(135133696) Header: scan: Accept-Ranges: bytes Apr 05 18:16:47 Privoxy(135133696) Header: scan: Content-Length: 5550 Apr 05 18:16:47 Privoxy(135133696) Header: scan: Content-Type: text/html Apr 05 18:16:47 Privoxy(135133696) Header: scan: Connection: close Apr 05 18:16:47 Privoxy(135133696) Header: crumble crunched: Connection: close! Apr 05 18:16:47 Privoxy(135133696) Header: Adjust Content-Length to 5550
Weil ich keine coole Sau bin,
lasse ich CSS auch am 5. April aktiviert, Firefox lädt also
die CSS-Datei nach und gibt als Ursprungsseite
http://www.fabiankeil.de/links.html
an. Privoxy lässt den Referer unberührt passieren:
Apr 05 18:16:47 Privoxy(135134208) Header: New HTTP Request-Line: GET /style_v2.css HTTP/1.1 Apr 05 18:16:47 Privoxy(135134208) Header: scan: GET /style_v2.css HTTP/1.1 Apr 05 18:16:47 Privoxy(135134208) Header: scan: Host: www.fabiankeil.de Apr 05 18:16:47 Privoxy(135134208) Header: scan: User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.8.0.1) Gecko/20060401 Firefox/1.5.0.1 Apr 05 18:16:47 Privoxy(135134208) Header: scan: Accept: text/css,*/*;q=0.1 Apr 05 18:16:47 Privoxy(135134208) Header: scan: Accept-Language: en,en-us;q=0.5 Apr 05 18:16:47 Privoxy(135134208) Header: scan: Accept-Encoding: gzip,deflate Apr 05 18:16:47 Privoxy(135134208) Header: scan: Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Apr 05 18:16:47 Privoxy(135134208) Header: scan: Keep-Alive: 600 Apr 05 18:16:47 Privoxy(135134208) Header: scan: Proxy-Connection: keep-alive Apr 05 18:16:47 Privoxy(135134208) Header: scan: Referer: http://www.fabiankeil.de/links.html Apr 05 18:16:47 Privoxy(135134208) Header: Referer: http://www.fabiankeil.de/links.html (not changed, still on www.fabiankeil.de) Apr 05 18:16:47 Privoxy(135134208) Header: scan: Pragma: no-cache Apr 05 18:16:47 Privoxy(135134208) Header: scan: Cache-Control: no-cache Apr 05 18:16:47 Privoxy(135134208) Header: Modified: User-Agent: Ich bin's Apr 05 18:16:47 Privoxy(135134208) Header: Suppressed offer to compress content Apr 05 18:16:47 Privoxy(135134208) Header: crumble crunched: Keep-Alive: 600! Apr 05 18:16:47 Privoxy(135134208) Header: crumble crunched: Proxy-Connection: keep-alive! Apr 05 18:16:47 Privoxy(135134208) Header: addh-unique: Host: www.fabiankeil.de Apr 05 18:16:47 Privoxy(135134208) Request: www.fabiankeil.de/style_v2.css Apr 05 18:16:55 Privoxy(135134208) Header: scan: HTTP/1.1 200 OK Apr 05 18:16:55 Privoxy(135134208) Header: scan: Date: Wed, 05 Apr 2006 16:16:54 GMT Apr 05 18:16:55 Privoxy(135134208) Header: scan: Server: Apache/df-exts 1.2 (Unix) mod_ssl/2.8.22 OpenSSL/0.9.7d AuthPG/1.3 Apr 05 18:16:55 Privoxy(135134208) Header: scan: Last-Modified: Sat, 10 Dec 2005 20:04:51 GMT Apr 05 18:16:55 Privoxy(135134208) Header: scan: ETag: "258032-6ce-439b34e3" Apr 05 18:16:55 Privoxy(135134208) Header: scan: Accept-Ranges: bytes Apr 05 18:16:55 Privoxy(135134208) Header: scan: Content-Length: 1742 Apr 05 18:16:55 Privoxy(135134208) Header: scan: Connection: close Apr 05 18:16:55 Privoxy(135134208) Header: scan: Content-Type: text/css Apr 05 18:16:55 Privoxy(135134208) Header: crumble crunched: Connection: close! Apr 05 18:16:55 Privoxy(135134208) Header: scan: HTTP/1.1 200 OK Apr 05 18:16:55 Privoxy(135134208) Header: scan: Date: Wed, 05 Apr 2006 16:16:54 GMT Apr 05 18:16:55 Privoxy(135134208) Header: scan: Server: Apache/df-exts 1.2 (Unix) mod_ssl/2.8.22 OpenSSL/0.9.7d AuthPG/1.3 Apr 05 18:16:55 Privoxy(135134208) Header: scan: Last-Modified: Sat, 10 Dec 2005 20:04:51 GMT Apr 05 18:16:55 Privoxy(135134208) Header: scan: ETag: "258032-6ce-439b34e3" Apr 05 18:16:55 Privoxy(135134208) Header: scan: Accept-Ranges: bytes Apr 05 18:16:55 Privoxy(135134208) Header: scan: Content-Length: 1742 Apr 05 18:16:55 Privoxy(135134208) Header: scan: Content-Type: text/css Apr 05 18:16:55 Privoxy(135134208) Header: scan: Connection: close Apr 05 18:16:55 Privoxy(135134208) Header: crumble crunched: Connection: close! Apr 05 18:16:55 Privoxy(135134208) Header: Adjust Content-Length to 1742
Als nächstes wird eine externe Seite
über einen der Links aufgerufen. Wieder gibt Firefox als Ursprungsseite
http://www.fabiankeil.de/links.html
an, diesmal
wird der Referer aber von Privoxy gefressen, für den Server-Betreiber sieht es so aus,
als hätte ich die Seite direkt angegeben.
Apr 05 18:17:02 Privoxy(135134720) Header: New HTTP Request-Line: GET / HTTP/1.1 Apr 05 18:17:02 Privoxy(135134720) Header: scan: GET / HTTP/1.1 Apr 05 18:17:02 Privoxy(135134720) Header: scan: Host: minkasia.blogspot.com Apr 05 18:17:02 Privoxy(135134720) Header: scan: User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.8.0.1) Gecko/20060401 Firefox/1.5.0.1 Apr 05 18:17:02 Privoxy(135134720) Header: scan: Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Apr 05 18:17:02 Privoxy(135134720) Header: scan: Accept-Language: en,en-us;q=0.5 Apr 05 18:17:02 Privoxy(135134720) Header: scan: Accept-Encoding: gzip,deflate Apr 05 18:17:02 Privoxy(135134720) Header: scan: Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Apr 05 18:17:02 Privoxy(135134720) Header: scan: Keep-Alive: 600 Apr 05 18:17:02 Privoxy(135134720) Header: scan: Proxy-Connection: keep-alive Apr 05 18:17:02 Privoxy(135134720) Header: scan: Referer: http://www.fabiankeil.de/links.html Apr 05 18:17:02 Privoxy(135134720) Header: New host is: minkasia.blogspot.com. Crunching Referer: http://www.fabiankeil.de/links.html! Apr 05 18:17:02 Privoxy(135134720) Header: Modified: User-Agent: Mozilla/5.0 (X11; U; NetBSD sparc64; fr-FR; rv:1.8.0.1) Gecko/20060403 Firefox/1.5.0.1 Apr 05 18:17:02 Privoxy(135134720) Header: Suppressed offer to compress content Apr 05 18:17:02 Privoxy(135134720) Header: crumble crunched: Keep-Alive: 600! Apr 05 18:17:02 Privoxy(135134720) Header: crumble crunched: Proxy-Connection: keep-alive! Apr 05 18:17:02 Privoxy(135134720) Header: addh-unique: Host: minkasia.blogspot.com Apr 05 18:17:02 Privoxy(135134720) Request: minkasia.blogspot.com/ Apr 05 18:17:08 Privoxy(135134720) Header: scan: HTTP/1.1 200 OK Apr 05 18:17:08 Privoxy(135134720) Header: scan: Date: Wed, 05 Apr 2006 16:18:34 GMT Apr 05 18:17:08 Privoxy(135134720) Header: scan: Server: Apache Apr 05 18:17:08 Privoxy(135134720) Header: scan: Vary: Accept-Encoding Apr 05 18:17:08 Privoxy(135134720) Header: scan: test: %{HOSTNAME}e Apr 05 18:17:08 Privoxy(135134720) Header: scan: Last-Modified: Tue, 04 Apr 2006 15:34:17 GMT Apr 05 18:17:08 Privoxy(135134720) Header: scan: ETag: "2164a2f-e644-443291f9" Apr 05 18:17:08 Privoxy(135134720) Header: scan: Accept-Ranges: none Apr 05 18:17:08 Privoxy(135134720) Header: scan: Content-Length: 58948 Apr 05 18:17:08 Privoxy(135134720) Header: scan: Keep-Alive: timeout=15, max=100 Apr 05 18:17:08 Privoxy(135134720) Header: scan: Connection: Keep-Alive Apr 05 18:17:08 Privoxy(135134720) Header: scan: Content-Type: text/html Apr 05 18:17:08 Privoxy(135134720) Header: crumble crunched: Connection: Keep-Alive! Apr 05 18:17:08 Privoxy(135134720) Header: crumble crunched: Keep-Alive: timeout=15, max=100! Apr 05 18:17:09 Privoxy(135134720) Header: scan: HTTP/1.1 200 OK Apr 05 18:17:09 Privoxy(135134720) Header: scan: Date: Wed, 05 Apr 2006 16:18:34 GMT Apr 05 18:17:09 Privoxy(135134720) Header: scan: Server: Apache Apr 05 18:17:09 Privoxy(135134720) Header: scan: Vary: Accept-Encoding Apr 05 18:17:09 Privoxy(135134720) Header: scan: test: %{HOSTNAME}e Apr 05 18:17:09 Privoxy(135134720) Header: scan: Last-Modified: Tue, 04 Apr 2006 15:34:17 GMT Apr 05 18:17:09 Privoxy(135134720) Header: scan: ETag: "2164a2f-e644-443291f9" Apr 05 18:17:09 Privoxy(135134720) Header: scan: Accept-Ranges: none Apr 05 18:17:09 Privoxy(135134720) Header: scan: Content-Length: 58948 Apr 05 18:17:09 Privoxy(135134720) Header: scan: Content-Type: text/html Apr 05 18:17:09 Privoxy(135134720) Header: scan: Connection: close Apr 05 18:17:09 Privoxy(135134720) Header: crumble crunched: Connection: close! Apr 05 18:17:09 Privoxy(135134720) Header: Adjust Content-Length to 59035
+hide-referrer{conditional-block}
wird wie jeder andere Filter über das Webinterface oder
über den Texteditor aktiviert.
actionlist.h
(veraltet)
edit-actions-for-url
(veraltet)
parsers.c
(veraltet)
Der letzte Patch sorgt zusätzlich für ausführlichere Debug-Informationen und lässt Privoxy
alle Dokumente filtern, bei denen der Content-Type
irgendwo die Zeichenkette
xml
enthält. Benötigt wird das für manche Newsfeeds und für
XHTML-Websites deren
Erschaffer die W3C-Empfehlungen befolgen.
Vorsichtig geschätzt sind 99% der XHTML-Benutzer
inkompetente Nasenbären, die XHTML nur wegen der
flotten Banner einsetzen, ihre Seiten aber als text/html
ausgeben und somit als defektes
HTML rendern lassen.
Irgendwann könnte es aber Hirn regnen, mit dem Patch ist man vorbereitet.
Weiterhin sorgt der Patch dafür, dass Privoxy auch die statischen Ersatz-Referer
akzeptiert, die nicht mit http://
anfangen. Solche Referer sind keine gute Idee,
aber das muss der Benutzer selbst entscheiden. Kleiner Log-Auszug dazu:
Apr 05 16:16:01 Privoxy(135133696) Header: Parameter: +hide-referrer{Ich bin eine Schnarchnase und anhand meines Referers leicht zu erkennen.} is a bad idea but I don't care. Apr 05 16:16:01 Privoxy(135133696) Header: Referer overwritten with: Referer: Ich bin eine Schnarchnase und anhand meines Referers leicht zu erkennen.
Die Patche auf dieser Seite sind veraltet, der Sammelpatch enthält aktualisierte Fassungen. Weitere Auswirkungen des Patches sind zusammen mit Hinweisen zur Installation auf der Seite Minor Privoxy improvements aufgeführt.