SSL 経由の Google マップのオプション
-
08-06-2019 - |
質問
最近、Google Maps API が SSL と適切に連携していないことがわかりました。それは当然ですが、他の人が効果的に使用している、これを克服するためのオプションにはどのようなものがありますか?
Maps API は SSL (HTTPS) 経由で動作しますか?
現時点では、マップAPIはセキュア(SSL)接続で使用できません。安全なサイトでマップAPIを実行している場合、ブラウザはユーザーに画面上の非セキュアオブジェクトについて警告する場合があります。
次のオプションを検討しました
- クレジット カードの収集 (SSL の要件) が Google マップと同じページにないようにページを分割します。
- Virtual Earth などの別のマップ プロバイダーに切り替える。SSLに対応しているという噂もあります。
- IFRAME を使ったトリック。ぎこちないですね。
- Google への呼び出しをプロキシします。オーバーヘッドが多そうです。
他に選択肢はありますか、それとも私たちが検討した選択肢について洞察を持っている人はいますか?
解決
この場合、ユーザビリティの観点から、2 つの機能を別々の画面に分割した方が良いかもしれないという前の 2 つの回答に同意します。ユーザーには完全かつ正確なクレジット カード情報の入力に集中してもらいたいのですが、同じ画面に地図が表示されると気が散ってしまう可能性があります。
ただし、記録のために言っておきますが、Virtual Earth は確かに SSL を完全にサポートしています。これを有効にするには、スクリプト参照を http:// から https:// に変更し、URL に &s=1 を追加するだけです。
<script src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.1" type="text/javascript"></script>
になる
<script src="https://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.1&s=1" type="text/javascript"></script>
他のヒント
これに追加するだけです
http://googlegeodevelopers.blogspot.com/2011/03/maps-apis-over-ssl-now-available-to-all.html
SSL マップ (最終的には Bing マップ API を使用しました) を Google に戻すことはまだ試していませんが、その可能性は十分にあります。
これはビジネス要件や使いやすさの問題のように思えますが、クレジット カード ページに地図を掲載する正当な理由はありますか?もしそうなら、技術的な問題を解決する価値があるかもしれません。
使ってみてはいかがでしょうか 地図抽出, そのため、SSL をサポートするプロバイダーに切り替えて、将来サポートされる場合には Google に戻すことができます。
私ならあなたの最初の解決策を選びます。これにより、ユーザーはクレジット カードの詳細の入力に集中できます。
その後、Google マップに関する詳細情報を尋ねたり提供したりする別の Web ページにユーザーを転送できます。
あなたが Google Maps API プレミア 顧客の場合、SSL がサポートされます。私たちはこれを使用していますが、うまく機能します。
Google が SSL を利用可能にする前は、すべてのトラフィックをプロキシ処理していましたが、これは問題なく機能しました。このアプローチを使用すると、Google の CDN の利点が失われ、大量のトラフィックを生成しているように見えるため、IP が禁止される可能性があります。
Google マップを表示中に IE 9 でセキュリティ アラートが表示される場合は、次を使用します。
<script src="https://maps.google.com/maps?file=api&v=2&hl=en&tab=wl&z=6&sensor=true&key=<?php echo $key;?>
" type="text/javascript"></script>
の代わりに
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&sensor=SET_TO_TRUE_OR_FALSE"
type="text/javascript"></script>
http プロトコルを削除したところ、正常に動作しました。
これから:
<script src="http://maps.google.com/maps/api/js?sensor=true" type="text/javascript"></script>
これに対して:
<script src="//maps.google.com/maps/api/js?sensor=true" type="text/javascript"></script>