2012-08-31 14 views
5

Wiem, że istnieje prawie podwójne pytanie, ale odpowiedź nie jest w ogóle satysfakcjonująca.Czy jest możliwe utworzenie żądania JSONP z HTTPS na HTTP?

Potrzebuję wykonać geokodowanie za pomocą usługi Openstreetmap, która działa przez HTTP.

Moja witryna działa w trybie HTTPS.

Nie można wykonać żądania JSONP z https na http, przeglądarka (Chrome) skarży się na niezabezpieczoną zawartość.

Jakieś rozwiązania?

Odpowiedz

5

Powodem, dla którego przeglądarka skarży się na niezabezpieczone treści, jest to, że zawartość jest niezabezpieczona. Cały cel z bezpieczną stroną polega na tym, że wszystko to jest bezpieczne i można zaufać.

Możesz skonfigurować stronę proxy w bezpiecznej witrynie, która żąda niezabezpieczonej zawartości. Tam powinieneś zweryfikować zawartość, zanim zostanie ona wysłana do przeglądarki, tak aby była rzeczywiście bezpieczna, a nie tylko udawać, że jest bezpieczna.

+0

Więc w prawdziwym scenariuszu moja JQuery należy otworzyć okienko w http (tylko rozwiązanie można myślę o), uzyskaj odpowiedź JSONP i przeanalizuj ją? – Cranio

+1

W rzeczywistym scenariuszu nie należy ładować treści za pośrednictwem nieszyfrowanych kanałów na bezpiecznej stronie. Jeśli nie traktujesz poważnie kwestii bezpieczeństwa, po prostu skorzystaj z HTTP. – Tgr

+1

@Cranio: Nie, proxy, o którym mówię, to strona na serwerze. Wysyłasz do niego żądanie https i wysyła ono żądanie HTTP do usługi, weryfikuje odpowiedź i zwraca ją do przeglądarki. – Guffa

3

Jeśli chcesz wysłać żądanie POST do zewnętrznej usługi, która działa pod HTTP, podczas gdy pierwotne żądanie pochodzi z HTTPS, zawsze będzie traktowane jako niezabezpieczone. Jest, o ile mi wiadomo, nie sposób obejść.

Co możesz zrobić, to POST do twojego zaplecza, który wysyła kolejne żądanie POST do usługi działającej pod HTTP. Stamtąd wystarczy zwrócić wartość zwróconą przez usługę HTTP.

+0

Powinieneś ** nie ** po prostu zwrócić wartość z usługi, powinieneś ją najpierw sprawdzić. Proxy bierze niezabezpieczone dane i wraca do bezpiecznych danych, więc musi wziąć odpowiedzialność za sprawdzenie, czy rzeczywiście jest bezpieczny. – Guffa

+0

Na koniec prawdopodobnie chcesz zwrócić dane, jeśli są bezpieczne. Inaczej nie ma sensu w realizacji żądania. –

+0

Powiedziałem, że powinieneś go najpierw sprawdzić. Jak sądzisz, co będzie dalej? ;) – Guffa

3

Dla kogo to może dotyczyć, w ten sposób sam to załatwiłem.

1) mój kod Javascript wzywa stronę AJAX na mój serwer z parametrem potrzebne do przekazania do służby

2) strona AJAX sprawia, że ​​żądanie za pośrednictwem CURL użyciu adresu

3) I zdezynfekować odpowiedź i przekształcić go w JSON

4) z javascript w callback-na-sukces używam dane

+0

Tak, to wygląda dobrze. Strona proxy nie musi zwracać odpowiedzi w niezmienionej postaci. – Guffa

+0

@Guffa: tak, to para współrzędnych, bardzo łatwa do dezynfekcji przez PHP. Dzięki za pomoc :) – Cranio

Powiązane problemy