HTTPS-zu-HTTP JSONP-Anfrage

Habe ich Probleme, senden von JSONP-Anforderungen von HTTPS Website HTTP Website.

Ich habe einen (nicht lokalen) Testumgebung, die über https (mit gültigen Zertifikat), wo ich in der Lage bin, alle diese cross-site - /"cross-Protokoll" Anfragen erfolgreich (mit Warnungen aber ohne Fehler).

Google Chrome Javascript-Konsole ausgegeben:

The page at https://my.test.environment/ran insecure content from http://non.secure.site/service?jsonCallback=jsonp1331132928704

Jedoch, in der Produktion, (über Google App Engine, appspot subdomain) Google Chrome blockiert alle Anfragen wartet auf Bestätigung durch den Anwender.

Google Chrome Javascript-Konsole ausgegeben (Besondere Aufmerksamkeit zu [gesperrt] text):

[blocked] The page at https://production.appspot.com/ran insecure content from http://non.secure.site/service?jsonCallback=jsonp1331132928704

Ich weiß, was ich Tue, ist nicht sicher, aber diese Dienstleistungen werden von der Dritten Partei und es gibt keine SSL-Verbindung zur Verfügung, so weit. Ich bin wirklich verwirrt, weil ich nicht bekommen, warum ist die Arbeit (mit Warnungen) in der test-Umgebung und nicht unter appspot (Google App Engine).

Habe ich versucht, zu untersuchen, Header, aber ohne Erfolg.

Testumgebung Header:

Connection:Keep-Alive
Content-Encoding:gzip
Content-Language:es
Content-Length:2524
Content-Type:text/html;charset=utf-8
Date:Wed, 07 Mar 2012 15:48:30 GMT
Keep-Alive:timeout=15, max=100
Set-Cookie: cookie_info...
Vary:Accept-Encoding

APPSpot Header:

access-control-allow-credentials:false
access-control-allow-origin:*
cache-control:no-cache, must-revalidate
content-encoding:gzip
content-length:47890
content-type:text/html; charset=utf-8
date:Wed, 07 Mar 2012 14:52:02 GMT
expires:Fri, 01 Jan 1990 00:00:00 GMT
pragma:no-cache
server:Google Frontend
set-cookie: coookie_info....
status:200 OK
vary:Accept-Encoding
version:HTTP/1.1

Ich habe keine Ahnung, warum das funktioniert im test envinroment und der gleiche Ansatz ist blockiert APPSpot von Google Chrome.

Irgendwelche Gedanken?

  • Chrome behandelt Google HTTPS-Seiten oft anders als die standard-HTTPS-Seiten (z.B. spezielle Zertifikats-Prüfungen). Möglicherweise ist dies auch der Fall für unsichere Inhalte?
  • Mayte Sie aré Recht. In der Tat, das problem tritt nur auf, wenn wir der Bereitstellung der app auf GAE (appspot verwendet Google ' s Zertifikat). Ich werde digg hinein. Danke!
  • Ich habe das gleiche Problem auf meinem eigenen server und (gültige) Zertifikat...
  • tja, die Antwort hier: stackoverflow.com/questions/12216208/...
  • Es gibt eine immportant Sache muss ich hinweisen - Sie schrieb, dass Sie tun, JSONP-Aufruf an eine Dritte Partei, und Sie bieten keine Sicherheit. Dude... JSONP ist nur ein name für die Ausführung von javascript aus der Dritten und in der Hoffnung, es ruft die Funktion mit einigen Daten. Wenn es keine https-in, der call jeder kann tun und MITM laufen einige code, der fängt alle Daten, die Sie zu schützen versuchte mit https.
  • Yep, es ist zwar interessant zu verstehen, warum Sie schlagen dieses problem, Sie sollten sich auch Fragen, wie können Sie sicher Holen Sie sich die Daten, die Sie brauchen. In diesem Fall, würde ich dies tun, durch die Einrichtung eines proxy über Ihre App Engine-Instanz, d.h. eine Ansicht, die nicht urlfetch() aus a (normal) - JSON-API von der remote-service und gibt die Antwort an den client. Das Schlimmste, was ein MITM-Angriff kann dann beschädigt ist die Daten.

Schreibe einen Kommentar