2010-06-29 15 views
42

Ich bin ein kleines Widget zu schaffen, und ich möchte, damit andere es zu benutzen. Die iframe wird über HTTP geladen - aber ich möchte Benutzern erlauben, sich über HTTPS anzumelden. z. B. eine Anfrage für die Anmeldung über SSL senden.HTTP und HTTPS iframe

Ist das innerhalb der Same Origin Policy erlaubt? Das Szenario besteht darin, dass ein Benutzer mein JavaScript in seine Website integrieren kann, das Widget öffnet und ich möchte, dass sie sich über HTTPS anmelden können?

+0

ich mit ein paar einzigartigen Weise beantworten dies hier zu tun: http://stackoverflow.com/questions/18327314/how-to-allow-http-content-within-an-iframe-on-a-https-site/25189561 # 25189561 –

Antwort

50

Es ist im Allgemeinen schlechte Praxis einen Iframe einbetten mit Inhalten über HTTPS bedient innerhalb einer Seite über einfaches HTTP serviert (oder mischen Inhalt). Der Grund dafür ist, dass es für den Benutzer keine gute Möglichkeit gibt zu überprüfen, ob er die gewünschte HTTPS-Site verwendet (es sei denn, der Benutzer möchte wirklich die Quelle der Seite überprüfen).

Ein Angreifer sehr gut die Inhalte, die Sie wie diese dienen ersetzen könnte:

<iframe src="https://your.legitimate.example/loginframe" /> 

mit:

<iframe src="https://rogue.site.example/badloginframe" /> 

oder sogar:

<iframe src="http://rogue.site.example/badloginframe" /> 

Das ist sehr schwer zu erkennen der Benutzer und schlägt die Sicherheitsmaßnahme, die Sie einrichten möchten, durch Aktivierung der Anmeldung über HTTPS zurück.

5

@Bruno - Ich stimme zu, aber ich möchte darauf hinweisen, dass sogar die Überprüfung der Quelle - so anspruchsvoll wie diese - der Seite nicht ausreicht, um die Sicherheit oder das richtige/beabsichtigte Ziel zu gewährleisten, da dies oft das ist ursprünglich serviert Quelltext. Es sei denn, ich ernsthaft täuscht, kann das leicht mit in-Seite oder sogar off-Seite Javascript-Code geändert werden (die selbst verschleiert werden kann, wenn jemand wirklich so gut wie unmöglich will es machen zu finden). Das heißt, IF ein Benutzer einen geeigneten Browser hat, Ich denke, dass sie könnte der Lage sein - wenn sie verdächtig sind mit zu beginnen - die Quelle des iframe zu überprüfen, um die Quelle des Codes, um zu bestimmen, dann bestimmen, ob sie der Quelle vertrauen ... nicht wirklich eine vernünftige Erwartung.

Obwohl all dies könnte mit entsprechenden Debugger und/oder Software/DOM-Inspektoren und eine gute Portion von digitalen Ellenbogen Fett bestimmt werden kann, kann die OP vernünftigerweise nicht erwarten, dass jeder dies zu tun (wenn jemand überhaupt)

+3

99,9 Prozent der Internet-Nutzer wissen oder nicht stören Seite Quelle zu überprüfen. Ich sehe, wie Sie meinen Vater dazu bringen können, Quellcode einzusehen, geschweige denn einen Debugger zu benutzen. – Krumia

3

Ich habe einige Tests gemacht. Wenn Sie von einer HTTPS-Seite mit einer anderen Domäne mit HTTPS verknüpfen, benötigen sie ein gültiges SSL-Zertifikat.