2010-12-14 2 views
3

ich bereits modal Login Arbeits Dialog haben. Das Problem ist, dass, wenn die Ursprungsseite über http geladen wird, ich Anmeldeinformationen weiterhin über https an den Server weiterleiten möchte. Und natürlich möchte ich so wenig wie möglich den Arbeitscode umschreiben.JQuery modalen Dialogform, die Daten über https senden

Ich kann JSONP nicht für meinen Fall verwenden, da die Anmeldedaten über die POST AJAX-Anfrage an den Server weitergeleitet werden.

Irgendwelche Ideen?

Antwort

2

Die gleiche Ursprung-Richtlinie macht dies unmöglich (zumindest in Browsern, die Cross-Domain-XHR nicht unterstützen, was genug ist).

(Und da das Host-Dokument über serviert HTTP es unterliegt und Veränderung auf dem Draht Abfangen, die die Daten anfällig machen würde, auch wenn es über SSL transportiert wurde)

0

Nur aus Neugier, warum Sie den Benutzer auf eine sichere Seite zu beginnen nicht zwingen? Warum hatten wir vor einer Weile ein ähnliches Problem? Jetzt zwingen wir den Nutzer zu https (via Redirect), sobald sie unsere Seite erreichen.

0

Bitte beachten Sie, dass nach Same-origin policy es sollte nicht möglich sein, da Sie versuchen, nicht gesicherte Anmeldeinformationen auf der gesicherten Seite zu posten. Wenn die Zielseite der Anmeldeinformationen kein SSL verwendet, kann ein Angreifer die Seite so ändern, wie sie an den Benutzer gesendet wird, und den Speicherort für das Formular ändern oder JavaScript einfügen, das den Benutzernamen/das Passwort stiehlt. Für die Login-Zielseite muss SSL verwendet werden.

Um zu veranschaulichen, gibt die folgende Tabelle einen Überblick typischer Ergebnisse für Prüfungen gegen die URL "http://www.example.com/dir/page.html".

Compared URL        Outcome Reason 
http://www.example.com/dir/page2.html  Success Same protocol and host 
http://www.example.com/dir2/other.html Success Same protocol and host 
http://u:[email protected]/x/o.html Success Same protocol and host 
http://www.example.com:81/dir/other.html Failure Same protocol and host but different port 
https://www.example.com/dir/other.html Failure Different protocol 
http://en.example.com/dir/other.html  Failure Different host 
http://example.com/dir/other.html   Failure Different host (exact match required) 
http://v2.www.example.com/dir/other.html Failure Different host (exact match required) 
http://www.example.com:80/dir/other.html Depends Port explicit. Depends on implementation in browser. 

Im Gegensatz zu anderen Browsern Internet Explorer enthält nicht den Anschluss bei der Berechnung des Ursprungs, die Sicherheitszone an ihrer Stelle verwendet wird.


Wie die Same Origin Policy

Unter bestimmten Umständen die Same Origin Policy ist zu restriktiv, posierend Probleme für große Websites entspannen, die mehrere Sub-Domains verwenden. Hier sind vier Techniken zur Entspannung es:


Wenn Sie wirklich, was das zu tun, es ist möglich, aber Sie müssen sicherstellen, dass Ihre public key certificate Ihrer Website wurde ver ified by certification authority ist daher gültig.

Wenn dies nicht der Fall ist, können Sie versuchen, Ihr Zertifikat zur Whitelist in Ihrem Webbrowser hinzuzufügen. Oder versuchen Sie es mit anderen Webbrowsern.

Alternativ können Sie sicherstellen, dass sich Benutzer immer auf sicheren Seiten befinden, wenn sie das Anmeldeformular erhalten oder das modale Formular für Anmeldeformulare deaktivieren.

Eine andere Problemumgehung umfasst das Hinzufügen einer Rewrite-Regel durch Weiterleiten des nicht gesicherten Datenverkehrs in SSL, z.

# Various rewrite rules. 
<IfModule mod_rewrite.c> 
    RewriteEngine on 
    # Force <front> to ssl for modal use of secure log in module. 
    RewriteRule http://www.example.net/^$ https://www.example.net [R=301,L] 

Siehe auch: