Portál AbcLinuxu, 6. května 2025 16:46
Druhý nášup informací o Privoxy se zaměřuje na samotný obsah webových stránek načítaných do našeho prohlížeče – pokud se nám cokoliv znelíbí nejenom na stránce samotné, ale též v hlavičkách protokolu HTTP, tak si to prostě změníme. Podívejme se, jak na to.
Toto je silná zbraň Privoxy, kterou ovšem pořádně využijí jen ti,
kterým nejsou cizí regulární výrazy. Do souborů s filtry lze zapsat
klasické nahrazovací příkazy typu s/najdi/nahraď/
, sdružovat
je do skupin jakožto pojmenované filtry a následně aplikovat na
obsah vybraných stránek v souboru s akcemi. Vše nejlépe osvětlí
příklady – autoři Privoxy nabízí například následující primitivní
filtr k odstranění značek HTML pro blikající a jezdící text:
FILTER: html-annoyances s-</?(blink|marquee).*>--sigU
V souboru s akcemi jej nyní můžeme použít:
{+filter{html-annoyances}} /
Začátek filtru je indikován klíčovým slovem FILTER
na
začátku řádku, za dvojtečkou následuje název filtru, na který se potom
lze odvolávat v souboru s akcemi (zapisuje se do složených závorek za
volání akce filter
). Lomítko jako vzorek vyhovuje všem
doménám, filtr z příkladu se tedy bude aplikovat na veškerý načítaný
webový obsah.
Jak již příklad ukazuje, oddělovacím znakem v nahrazovacím příkazu může být i jiný znak než lomítko (kterých je v HTML požehnaně), za posledním oddělovacím znakem mohou následovat modifikátory s následujícím významem:
i
– nerozlišovat velikost písmen.s
– uchopení celého obsahu webové stránky jako
jednořádkového řetězce.g
– nahrazení všech výskytů vyhovujících vzorku.U
– vypnutí hledání nejdelší shody vzorku v řetězci
(ungreedy matching).T
– zamezení vyhodnocování zpětných odkazů
(backreferences) v substitucích.Více se s regulárními výrazy můžete seznámit například na českém webu www.regularnivyrazy.info.
Jiný příklad – další jednoduchý filtr nabízený tvůrci Privoxy - mění veškerý výskyt slova Microsoft na MicroSuck:
FILTER: fun s/microsoft(?!.com)/MicroSuck/ig
I takovýto filtr by se dal aplikovat na širokou škálu webových stránek. Autoři Privoxy nám však nabízejí mnohem více mnohem užitečnějších filtrů, z nichž ty nejzajímavější má smysl zmínit:
Nejlepší na pozměňování obsahu stránek však je možnost napsat si filtr vlastní. Osobně například používám takovýto filtr pro automatické přihlašování se k některým webovým službám:
FILTER: prihlaseni s/name="username" *value=""/name="username" value="muj_login"/ s/name="password"/name="password" value="moje_heslo"/ s%</body>%<script type="text/javascript">document.forms\[0\].submit();</script></body>%i
Kromě toho, že do patřičných formulářových polí doplní jméno a heslo, navíc na konec stránky přidá skript pro automatické odeslání formuláře. Výborné je, že toto automatické přihlašování funguje i na stránkách, kde si kontrolují „referery“.
Akce block
a filter
se zajisté uplatní nejvíce, Privoxy však použitelných akcí nabízí mnohem více. Většinu z nich
popisuje následující přehled, který jsem pro lepší přehlednost seskupil
do několika celků. Akce označené hvězdičkou jsou dostupné až od verze
Privoxy 3.0.5.
add-header{název: hodnota}
crunch-client-header{řetězec}
,
crunch-server-header{řetězec}
*force-text-mode
*hide-accept-language{jazyk}
*Nahradí hlavičku preferovaných jazyků klienta na specifikovaný jazyk; pokud se uvede klíčové slůvko block
, bude hlavička smazána. Znám uživatele, kteří si v prohlížeči nastavují preferovaný jazyk na angličtinu jen proto, aby jim Google nevyhledával na českých stránkách – následující dva řádky v Privoxy to elegantně pořeší:
{+hide-accept-language{en,cs}} .google.cz
hide-referer{block|forge|http://nejaka.adresa.cz}
block
ji zcela smaže, forge
nastaví jméno dotazované serveru, jiný řetězec se zašle tak, jak byl specifikován.hide-user-agent{typ-prohlížeče}
handle-as-image
set-image-blocker
, obvykle neutrální obrázek.set-image-blocker{blank|pattern|URL}
{+block +handle-as-image}
; hodnota blank
zašle průhledný obrázek velikosti 1×1; pattern
vyústí v šedobílou šachovnici; jiný řetězec specifikuje adresu, odkud se má načítat náhradní obrázek.inspect-jpegs
*deanimate-gifs{first|last}
prevent-keeping-cookies
, session-cookies-only
crunch-outgoing-cookies
,
crunch-incoming-cookies
send-wafer{název=hodnota}
send-vanilla-wafer
jarfile
), speciální cookie se sdělením „nepřijímám cookies, které mi zasíláte, a rád bych, abyste mě přestali sledovat“.filter-client-headers
, filter-server-headers
*prevent-compression
redirect{adresa}
*Přesvědčí prohlížeč, že požadovaný dokument se nachází na specifikované adrese a že by si jej měl načíst odtud. Pokud se nám například znelíbí logo jednoho vyhledávače, můžeme si pomoci následovně:
{+redirect{http://www.tucniak.sk/images/tucniak.gif}} www.google.cz/intl/en_com/images/logo_plain.png
fast-redirects{check-decoded-url|simple-check}
handle-as-empty-document
*V souvislosti s pozměňováním obsahu je dobré také znát jednu volbu
ze základního konfiguračního souboru – buffer-limit
.
Definuje maximální velikost paměti (v kilobajtech) pro filtrování obsahu,
výchozí velikost je 4 MB. Pokud načítaný dokument přesáhne tuto
velikost, další filtrování se již na zbytku dokumentu neprovádí.
V závěrečném díle povídání o Privoxy bude představeno webové rozhraní a vysvětleno řízení přístupu na základě IP adres.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.