Chrome-Erweiterung: Blockieren Sie Seitenelemente vor dem Zugriff

8

Ich versuche, Elemente auf einer Webseite zu blockieren, aber ich möchte das tun, bevor sie geladen werden. Also könnte ich zum Beispiel

verwenden

chrome.webRequest.onBeforeRequest.addListener(...);

Und umleiten / stornieren Sie die Anfrage. Aber ich möchte den tatsächlichen Inhalt der Anfrage überprüfen. Was ich gerade mache, ist das Starten von XMLHttpRequest , um die URL / das Objekt selbst zu laden, den Inhalt zu inspizieren und ihn gegebenenfalls zu blockieren. Das Hauptproblem besteht jedoch darin, dass nicht viele Objekte blockiert werden. Das bedeutet, dass jedes Objekt zweimal geladen wird: einmal für "meine Inspektion" und einmal, nachdem ich gesagt habe "okay, Sie können es laden".

Wie kann ich den Ladevorgang abfangen, so dass ich ihn im laufenden Betrieb untersuchen und die Datenbytes weitergeben kann, wenn sie erlaubt sind?

Ich hoffe, Sie verstehen meine Frage, danke: -)

Beispiel wie ich es jetzt mache:

%Vor%     
mutilis 22.12.2016, 10:44
quelle

3 Antworten

0

Ich konnte erreichen, was ich versuchte. Die Lösung benötigt nicht unbedingt Erweiterungen, aber um einen Proxy einzurichten, kann dies nützlich sein. Danach ist die Lösung (für das oben angegebene Problem) wie folgt:

  • Verwenden Sie eine Chrome-Erweiterung, um einen Proxy zu verwenden, in diesem Fall localhost
  • Richten Sie ein Proxyscript ein, z. Verwenden von Python zum Weiterleiten des gesamten Datenverkehrs (und möglicherweise zum Installieren von Zertifikaten, sodass der HTTP-Datenverkehr ebenfalls analysiert werden kann)
  • = & gt; Man-in-the-Middle etabliert, analysiert den Traffic und modifiziert ihn bei Bedarf.

Ja, das ist nicht wirklich eine Lösung für das Problem, eine Chrome-Erweiterung irgendwie zu machen, aber es ist noch nicht möglich (siehe Ссылка ).

Mit freundlichen Grüßen, mutilis

    
mutilis 08.01.2017, 00:22
quelle
3

Sie können ServiceWorker verwenden, um das ursprüngliche Response vor dem Zurückgeben des Inhalts von original Response oder neuem Inhalt zu lesen.

%Vor%

%Vor%

plnkr Ссылка

Siehe Was passiert, wenn Sie eine Antwort lesen?

    
guest271314 01.01.2017 08:25
quelle
1

Ich glaube, dass Sie Array-Puffer verwenden können, um den Inhalt in Echtzeit zu lesen.

Hier ist ein Beispiel für das Laden einer Datei / Seite in einen Puffer;

%Vor%

Dies ist ein Stück Code, der auf der Dokumentationsseite XMLHttpRequest gefunden wurde. Link .

    
Rob Quist 27.12.2016 14:52
quelle

Tags und Links