• In diesem Bereich findet ihr Tutorials und Reviews. Die Forenrechte zur Erstellung neuer Themen sind hier eingeschränkt, da Problemdiskussionen bitte in den übrigen Forenbereichen auf Apfeltalk zu führen sind. Wer ein Tutorial oder Review einstellen möchte, kann im Unterforum "Einreichung neuer Tutorials" ein neues Thema erstellen. Die Moderatoren verschieben den Beitrag dann in den passenden Bereich.
  • Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

AdBlocking mal anders anders

Skeeve

Pomme d'or
Registriert
26.10.05
Beiträge
3.120
Gerade habe ich tfcs "AdBlocking mal anders" Tutorial gesehen. Wenn ich das richtig verstanden habe, wird dabei einfach jede Abbfrage an einen bekannten Werbehost über DNS unterdrückt.

Ich betreibe seit langem schon eine andere Art der Werbeblockierung, nämlich über eine passende proxy Konfigurationsdatei.

Diese Datei nutzen Browser um herauszufinden, über welchen proxy sie gehen sollen, wenn eine bestimmte URL angefragt wird. Das wird eigentlich dazu benutzt, um z.B. firmeninterne Server direkt abzufragen und Zugriffe auf Server im Internet über verschiedene Proxies leiten zu können.

Idee
Die Idee hinter der Werbeunterdrückung ist nun die, bekannte Werbeserver oder auch einzelne URLs auf einen nichtexstenten Proxy umzuleiten. Das sieht dann zwar nicht unbedingt schön aus, weil man anstelle der Werbung oftmals die Meldung "Proxy refused connection" oder ähnliches sieht, aber immerhin wird man nicht durch (z.B.) nervtötende Flaswerbung erschreckt.

Hintergrund
Eine automatische Proxy Konfigurationsdatei ist im Prinzip nichts anderes als ein Stück JavaScript. Wer JavaScript beherrscht, kann sich diese Datei also sehr einfach selbst erstellen udn erweitern.

Vereinfacht gesagt, läuft es so, daß der Browser die Funktion FindProxyForURL(url, host) aufruft und bekommt als Antwort
entweder "PROXY proxyadresse" oder "DIRECT" erhält.

Umsetzung
Hier mal als ein Beispiel (verkürzt) meine proxy.pac mit Erläuterungen:
Code:
function FindProxyForURL(url, host)
{
        // hier definiere ich meinen Nicht-Existenten Proxy
        var ignore='PROXY localhost:80';

        // hier wird geprüft, ob der host zur Domain google-analytics.com
        // gehört. In dem Fall wird mein "ignore"-Proxy geliefert
        if (dnsDomainIs(host, '.google-analytics.com')) return ignore;

        // und hier prüfe ich, ob in der URL ".google.com/analytics/" vorkommt
        if (shExpMatch(url, '`*.google.com/analytics/*')) return ignore;

        if (dnsDomainIs(host, '.euroclick.com')) return ignore;

        // für gmx wird das ganzedann etwas trickreicher
        if (shExpMatch(host, '*.gmx.*')) {
                // ignoriert wird,
                // wenn der Hostname mit bs beginnt 
                if (host.substr(0,2)=='bs') return ignore;

                // oder wenn da irgendwo service.gmx und count auftaucht 
                if (shExpMatch(url, '*://service.gmx.*/*/count/*')) return ignore;

                // Außerdem mag ich keine flashbanner
                if (url=='http://service.gmx.net/ad/flashbanner_extern.js') return ignore;

                // oder shockwave filmchen von gmx
                if (shExpMatch(url, '*://www.gmx.net/*.swf*')) return ignore;
        }

        // RealMedia muß mich wohl auch mal genervt haben:
        if (shExpMatch(url, '*/RealMedia/ads/*')) return ignore;

        // und hier noch ein paar Werbehoster
        if (dnsDomainIs(host, '.falkag.de')) return ignore;
        if (dnsDomainIs(host, '.mediavantage.de')) return ignore;
        if (dnsDomainIs(host, '.tradedoubler.com')) return ignore;

        // Nur wer bis hierher durchgekommen ist, wieder "bedient"
        return 'DIRECT';
}

Mehr Hintergrundinformationen zu findProxyForURL gibt es im Netz.

  1. Man erstellt sich einfach eine Textdatei mit dem oben aufgeführten Inhalt.
  2. Speichert sie unter dem Namen proxy.pac (gerne auch einen anderen, aber dieser hat sich wohl eingebürgert)
  3. Richte den Browser entsprechend ein
    • FireFox
      • Firefox -> Einstellungen -> Erweitert -> Netzwerk
      • Verbindungen -> Einstellungen
      • Automatische Proyy-Konfigurations-URL: file:///Users/DeinBenutzer/proxy.pac
    • SeaMonkey
      • SeaMonkey -> Preferences -> Advanced -> Proxies
      • Automatic pdoxy configuration URL: file:///Users/DeinBenutzer/proxy.pac
    • Safari
      • Safari -> Einstellungen -> Erweitert -> Proxies: Einstellungen ändern
        (Es öffnet sich die Systemkonfiguration / Netzwerk)
      • Proxies -> Proxies konfigurieren: PAC-Datei verwenden
      • URL der PAC-Datei: file://localhost/Users/DeinBenutzer/proxy.pac
        (Oder über den Button "Datei auswählen" die Datei suchen und wählen)

P.S. Der, von tfc verwendete Server kann dieselben Daten auch als proxy.pac liefern. In dieser Form erreichen wir also zunächt mal dasselbe Resultat, wie mit tfcs Methode. Hier können wir aber noch verfeinernd eingreifen und den Nachteil bei seiner Method:
Nachteile:
-Wenn meine Lieblingsnewsseite www.news.de ist und dort Werbebanner von www.news.de/werbung eingeblendet werden, dann kann ich die Banner mit dieser Methode nicht getrennt vom Rest der Seite blockieren.
aus,erzen. hier müßte dann einfach das automatisch generierte
shExpMatch(host, "*.news.de")
ersetzt werden durch
shExpMatch(url, "*.news.de/werbung/*")
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Flugapfel

Skeeve

Pomme d'or
Registriert
26.10.05
Beiträge
3.120
Aus [thread=97875]gegebenem Anlaß[/thread] möchte ich diesen Thread mal reaktivieren.

Da ich inzwischen sporadisch mein „Personal Web Sharing“ aktiv habe, hat sich nur eine kleine Änderung zum obigen Script ergeben. Der Port ":80" des nicht-existenten Proxies ist nun ":8080". Zur Bequemlichkeit für alle, die es nicht so mit dem Editieren haben, hänge ich hier die fertige Datei als .ZIP an.

Einfach in (z.B.) Homedirectory:Library als proxy.pac ablegen und dann bei den Proxy Einstellung auswählen.
 

Anhänge

  • proxy.pac.zip
    834 Bytes · Aufrufe: 154