Schutz iFrame - Nur damit es auf der Arbeit in einer Domäne
Ich habe ein Widget, welches ich erstellt und ich bin einbetten auf anderen Webseiten mit einem iFrame. Was ich tun möchte, ist sicherzustellen, dass niemand kann den Quellcode anschauen und kopieren Sie die iFrame-code und setzen Sie ihn auf Ihrer eigenen website.
Kann ich das speichern der URL, dass es erlaubt sein sollte auf in der Datenbank. Ich habe es getan, bevor, eine Seite hatte eine lange verschlüsselte code und wenn es nicht übereinstimmt mit der domain dann sagte Zugriff Verweigert..
Weiß jemand, wie ich dies tun kann?
Dank!
Viele Schattierungen absolut unmöglich.
+1 @Rook. Nahm ein Gespräch mit Mech Software für mich zu denken, es richtig durch aber, natürlich, du hast absolut Recht. 🙂
+1 @Rook. Nahm ein Gespräch mit Mech Software für mich zu denken, es richtig durch aber, natürlich, du hast absolut Recht. 🙂
InformationsquelleAutor Drew | 2011-11-17
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nein, Sie können das nicht tun. Die beste Sache, die Sie tun können, ist die folgende:
Fügen Sie die oben, um Ihre JavaScript und verwenden Sie dann eine Wenn javascript obfuscator
window.top.location.host
- die verweisen auf die Gastgeber der top-Rahmen (der Ort, der versucht, das widget einbinden) und nichtwindow.location.host
welche den host, dient das widget.ohh danke, ich habe vergessen, dass
Wenn ich meinen code ein und schauen Sie auf die Website, die es eingebettet ist in Firebug bekomme ich dies: "Permission denied to access property 'host'"
nur prüfen-Fenster.top.Lage, dann
würde dies nicht funktionieren, in einem cross-domain-Website. Es gibt Permission denied to access property host in firebug
InformationsquelleAutor noob
Können Sie nicht verhindern, dass Menschen aus der Suche in den HTML-Code, aber es gibt einige Header können mit dem Sie festlegen können, welche Websites einbetten können Ihre iframe. Werfen Sie einen Blick auf die
X-Frame-Options
header und dieframe-Vorfahren
Richtlinie desContent-Security-Policy
. Browser, die Achtung, es wird sich weigern, zu laden des iFrames, wenn eingebettet in der Website einer anderen Person.InformationsquelleAutor weiyin
Auf dem server in den code für die Seite im IFRAME angezeigt wird, überprüfen Sie den Wert des
Referer
header. Es sei denn, dieser header wurde gesperrt aus Gründen des Datenschutzes enthält die URL der Seite, auf welche hosts der IFRAME.Natürlich kann man es, aber einige beliebige client-browser-NICHT-spoofing. Er ist nicht zu Fragen, um zu verhindern, dass Menschen von der Betrachtung seiner Quelle, er will nur verhindern, dass Menschen setzen den Rahmen auf Ihrer eigenen Website.
InformationsquelleAutor Dark Falcon
Was Sie fordert, ist so ziemlich unmöglich. Wenn Sie die Quelle im Internet verfügbar jemand kopieren können Sie die eine oder andere Weise. Irgendwelche javascript-tricks besiegt werden können durch die Verwendung von low-level-tools wie wget oder curl.
Also selbst wenn Sie schützen, du bist noch zu finden, dass jemand könnte in der Theorie kopieren Sie den code (wie den browser erhalten würden) und könnte, wenn so bestimmt, legen Sie es auf Ihrer eigenen website.
Ich bin damit einverstanden, können Sie machen es unbrauchbar, aber diese Art von Lösung wird nicht funktionieren, für die bestimmt. Diese Codezeile könnte leicht ausgeführt werden durch eine PHP-Datei mit file_get_contents und habe die Zeile ersetzt, die mit einem statischen Wert zu besiegen, ihn völlig.
Ein sehr guter Punkt; Du hast absolut Recht. Wenn das widget stützte sich auf die Kommunikation zurück zum Mutterschiff zu funktionieren, dann könnte wiederhergestellt werden. Setzen Sie einige der wichtigsten Funktionen auf Ihrem server und rufen Sie es mit XHR, die müssen Sie bestätigen, um die same-Origin-Policy und damit nicht, wenn sich jemand verändert und republishes der JS-code.
Genau. Dies kann jedoch gelöst werden, indem nicht die Einbettung in den iframe. Habe den js-code selbst erstellen der iframe auf der Seite, so dass Art und Weise der Ursprung ist immer richtig. Gewährt, dieser kann immer noch gefälscht werden, aber weit schwieriger zu benutzen.
Ich denke, es hängt stark von den widgets. Wenn es ein einfaches widget, das Sie denken würden, dass keine Sicherheit erforderlich wäre, zu löschen.
InformationsquelleAutor Mech Software
Ich Stand vor dem gleichen problem, aber ich habe den Benutzer auf einer Homepage. Ich breitete die Entscheidung.
Es dort platziert werden, wo es iframe
Muss es sein, sich in Ihrem iframe src
InformationsquelleAutor Sergey