Pornhub umgeht Werbeblocker mithilfe von Web-Sockets



    Ein Ingenieur von BugReplay fand eine großartige Möglichkeit, um zu demonstrieren, wie sein Screencast-Service den Netzwerkverkehr aufzeichnet und Fehler anzeigt , einschließlich WebSockets und JavaScript. Er hat einen Pornhub-Download-Screencast aufgenommen , der ein mit dem Video synchronisiertes Verkehrsprotokoll zeigt. In dieser Demonstration können Sie also deutlich sehen, wie Pornhub Werbeblocker umgeht und Werbung über Web-Sockets verschiebt.

    Pornhub arbeitet sehr kompetent. Wenn Sie die Site besuchen, wird nach einem Blocker gesucht. Wenn dies gefunden wird, öffnet die Site eine neue WebSocket-Verbindung, die als Übermittlungsmechanismus für Ersatzwerbung fungiert .

    Auf einem Screencast mit einem NetzwerkprotokollSie können viele Anfragen sehen, die von uBlock Origin blockiert wurden. Sie sind im Netzwerkverkehr als Fehlgeschlagen markiert .

    http://cdn1b.static.pornhub.phncdn.com/www-static/js/ph-tracking.js?cache=2016102525
    GET Failed
    https://media.trafficjunky.net/js/holiday-promo.js
    GET Failed
    http://www.google-analytics.com/analytics.js
    GET Failed
    http://ss.phncdn.com/iframe-1.1.3.html
    GET Failed
    http://ss.phncdn.com/iframe-1.1.3.html
    GET Failed
    http://engine.phn.doublepimp.com/Tag.engine?time=240&id=7129f320-ce21-4b40-9d7e-37b1df8cf8f0&rand=25334&ver=async&referrerUrl=&fingerPrint=123&abr=false&stdTime=-300&fpe=3&bw=1262&bh=636&res=1280x800
    GET Failed
    http://electosake.com/240/7129f320-ce21-4b40-9d7e-37b1df8cf8f0/82615/asynch/null/123/null/true/-300/3/1262/636/Tag.a1b
    GET Failed
    https://www.etahub.com/trackn?app_id=971&product_name=2&category=connectTime&action=other&label=&value=116
    GET Failed
    https://www.etahub.com/trackn?app_id=971&product_name=2&category=ttfb&action=other&label=&value=799
    GET Failed
    https://www.etahub.com/trackn?app_id=971&product_name=2&category=redirectTime&action=other&label=&value=0
    GET Failed
    https://www.etahub.com/trackn?app_id=971&product_name=2&category=domInteractive&action=other&label=&value=1659
    GET Failed
    https://www.etahub.com/trackn?app_id=971&product_name=2&category=domComplete&action=other&label=&value=1829
    GET Failed
    https://www.etahub.com/trackn?app_id=971&product_name=2&category=domContentLoadedEventEnd&action=other&label=&value=1710
    GET Failed
    https://www.etahub.com/trackn?app_id=971&product_name=2&category=loadEventEnd&action=other&label=&value=1850
    GET Failed

    Wenn Sie auf eine Anfrage klicken, werden Details angezeigt. Der Grund für die Sperrung: net::ERR_BLOCKED_BY_CLIENT. Ein solcher Fehler tritt auf, wenn der Werbeblocker im Browser einige Ajax-Aufrufe blockiert (zumindest in Chrome funktioniert dies genau so).

    Unmittelbar nach der Fehlermeldung im Protokoll wird eine Anforderung zum Erstellen eines Web-Sockets und von Frames angezeigt , auf die eine positive Antwort eingegangen ist.

    ws://ws.adspayformy.site./nsoj
    webSocketCreate
    ws://ws.adspayformy.site./nsoj
    webSocketFrameSent
    ws://ws.adspayformy.site./nsoj
    webSocketFrameReceived

    Als würde sich Pornhub bei den Nutzern entschuldigen, verwendet Pornhub die Domain adspayformy.site, um einen Web-Socket zu erstellen. Der Witz richtet sich eindeutig an diejenigen, die Werbeblocker verwenden.

    Nach dem Laden des Web-Sockets wird ein Frame erstellt, in den der codierte JSON-Inhalt für jede Stelle auf der Seite geladen wird, an der sich das Banner befinden soll.

    {
    "zone_id": 32,
    "link": "http://cp.pleasedontslaymy.download/_z/eyJj...In19",
    "media_type": "image",
    "media_encoding": 0,
    "img_data": "/9j/4QA.....Wh+n//2Q==",
    "img_type": "image/jpeg"
    }

    In diesem Fall ist zone_id32 angegeben, die den Ort für die Einführung von Werbung angibt. Normalerweise wird dort ein Video eingefügt, in diesem Beispiel handelt es sich jedoch um ein Grafikbanner, das in angezeigt wird media_type. Der Inhalt wird in base64 codiert und im Browser gemäß dem Schema data: URL (oder data: URI) wiederhergestellt , das von fast allen modernen Browsern unterstützt wird. Ein und dann Daten, die als markiert sind, werden an diese Schaltung weitergeleitet image/jpeg.

    Werbeblocker verfolgen in der Regel Web-Sockets, sodass das Codieren von Daten in base64 ebenfalls eine clevere Sache ist.

    Nachdem Sie die schmutzigen Methoden von Pornhub entdeckt haben, wird die Musik natürlich nicht lange wiedergegeben. Bereits am 25. Oktober schlug einer der Entwickler der Chromium-Community unter dem Spitznamen pkalinnikov einen Patch vor, über die der Browser Web-Sockets über die webRequest-API blockieren kann . Wenn der Patch akzeptiert wird, können Werbeblocker den normalen Weg zum Blockieren solcher Hacks in Chrome ruhig umsetzen, aber die Besitzer von Pornhub müssen nach neuen Tricks im ewigen Kampf mit Blockern suchen, die niemals aufhören werden .

    Nach der Veröffentlichung der Veröffentlichung des Entwicklers BugReplay stellte sich heraus, dass einige Werbeblocker gelernt hatten, Web-Sockets wie die von Pornhub verwendeten zu blockieren. Zumindest crawlt der Web-Socket nicht mehr durch uBlock Origin (das entsprechende Ticket ) und AdBlock Plus ( Ticket ). Der AdBlock-Blocker und einige andere wurden jedoch noch nicht aktualisiert.

    Die Geschichte der Chrome-WebRequest-API "Bug", mit der Sie WebSocket-Anforderungen ( Ticket 129353 ) nicht abfangen können, ist sehr interessant. Dieses Ticket wurde im Mai 2012 eröffnet. Und bleibt trotzdem offen. Die Diskussion dauerte sehr lange. In der Diskussion beklagten sich Benutzer darüber, dass es aufgrund der Unfähigkeit, Web-Sockets zu blockieren, relativ einfach sein kann, Werbeblocker zu umgehen. Wenn der Blocker keine Web-Sockets über Standard-APIs überwacht, müssen Sie nach sehr schwierigen Problemumgehungen suchen, um solche Werbung zu blockieren. Anfangs war es ein rein theoretisches Problem. Es scheint, dass im Jahr 2012 keine einzige Website solche Methoden zur Umgehung von Werbeblockern einsetzte, und selbst die Blocker selbst waren zu dieser Zeit nicht so beliebt wie heute.

    Die Situation hat sich in den Jahren 2015 und 2016 geändert. Jetzt ist Pornhub nicht die einzige Seite, die an einen solchen Hack gedacht hat. Was am interessantesten ist, sprach einer der Entwickler in der Diskussion über das Ticket in Chrom im August 2016 . Er erklärte überzeugend, dass Werbeblocker versuchen, den Inhalt von Web-Sockets umzuschreiben - und dies bedroht die Sicherheit der Benutzer wirklich, da dies die Grundfunktionalität von Javascript verletzt. Das heißt, die Implementierung dieses Patches bedeutet, dass die Sicherheit beeinträchtigt wird. Alles wäre gut, aber dieser Entwickler routeh ... @ gmail.comarbeitet bei MindGeek, dem Eigentümer von Pornhub und dem Werbenetzwerk von By Traffic Junky, das dort Anzeigen liefert. Übrigens funktionieren ähnliche Tricks zur Umgehung von Werbeblockern nicht nur auf Pornhub, sondern auch auf anderen MindGeek-Websites.

    Es scheint, dass ziemlich fortgeschrittene Programmierer in Pornofirmen arbeiten. Wie aus der Geschichte bekannt, hat die Pornoindustrie den technologischen Fortschritt oft vorangetrieben. Es stellt sich heraus, und jetzt sind sie in gewisser Weise allen anderen voraus. Zumindest bei den innovativsten Methoden zur Umgehung von Werbeblockern. Richtig, in der gleichen Diskussion im Chomium-Tracker wurde berichtet, dass einige andere Werbenetzwerke den Trick mit Web-Sockets anwenden. Ein bestimmtes Netzwerk namens RevDefender wurde erwähnt.

    Viel Glück, Genosse KalinnikovDamit wird sein Patch in die Chromium-Codebasis aufgenommen. Anscheinend ist dies einer der führenden Entwickler von Chrom, daher verlassen wir uns auf seine Glaubwürdigkeit.

    Jetzt auch beliebt: