2016-04-18 24 views
0

Ich möchte eine Website mit einer ähnlichen Funktionalität wie translate.google.com oder hypothes.is hat: Benutzer können jede Adresse und die Website-Eröffnung mit einem zusätzlichen Menü eingeben. Ich glaube, das ist mit einer Middleware-Proxy-Lösung gemacht und ein Javascript ist in die Antwort injiziert, aber ich bin mir nicht sicher. Haben Sie eine Idee, wie Sie dieselbe Funktion implementieren können? Wie kann es mit gesicherten (https) Websites funktionieren?Richtiger Weg, um JavaScript-Code zu injizieren?

Vielen Dank

Antwort

0

Die gesamte Seite vom Server geholt wird, wird der Quellcode analysiert, Code injiziert und dann zurück an den anfordernden Client.

Es funktioniert nur mit SSL, weil es zwei separate Anfragen ist - die Anfrage, die an den Endpunkt gesendet wird, wird vom Benutzer nicht gesehen.

Das Zertifikat ist gültig, da es unter der Domäne von Google bereitgestellt wird.

Um tatsächlich so etwas wie dies zu implementieren möglicherweise recht kompliziert sein könnte, denn:

  • Die HTML Sie Ihre Erwartungen nicht unbedingt entsprechen parsen oder sogar
  • Der Inhalt Sie gültig Beim Weiterleiten an den Client werden Ressourcen wahrscheinlich mit einem relativen URI referenziert. Dies bedeutet, dass Sie diese Anfragen auch abfangen und die Ressourcen (Bilder, externe CSS, JS usw.) abrufen und sie dem Client bereitstellen müssen - und auch die URLs neu schreiben müssen.
  • Es ist sehr einfach, Inhalte durch das injizieren von beliebigem Javascript zu brechen. Sie müssen darauf achten, dass der eingegebene Code enthalten ist und den vorhandenen Code auf der Site nicht beeinträchtigt.
  • Es ist sehr üblich, dass eine solche Implementierung nicht offensichtliche Sicherheitsbedenken hat, was oft dazu führt, dass XSS-Angriffe möglich sind.
Verwandte Themen