@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

異なるドメン間でショッピングカートを渡すには

投稿者投稿内容
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2006-11-13 09:01
お世話さまです。

ECサイトで決済処理をSSLに対応させたいのですが、「http://」のサイトから
「https://」のサイトに切り替えてSSLを適用させるとき、ショッピングカート
をどのように渡すか悩んでいます。

解決策として、

1. ショッピングカートをデータベース経由で渡す。「http://」から「https://」に
 切り替えるときクエリストリングでUSERID(GUID)を渡してデータベースに格納した
 ショッピングカートと対応させる。

2. 特別なテクニックを利用して異なるドメン間でショッピングカート(Sessionステート
  に保存)を渡す。

上記2点とも、技術的な問題は解決したのですが・・・もっとスマートな方法は
ないでしょうか。

たとえば、決済処理だけSSL「https://」対応にするのではなく、ECサイト全体にSSLを
適用するとか。ECサイトすべてにSSLを適用すると、かなりレスポンスが遅くなるのでしょうか。この辺のアドバイスをいただければ助かります。
ひら
ぬし
会議室デビュー日: 2005/03/04
投稿数: 260
投稿日時: 2006-11-13 10:22
引用:

Accessさんの書き込み (2006-11-13 09:01) より:

ECサイトで決済処理をSSLに対応させたいのですが、「http://」のサイトから
「https://」のサイトに切り替えてSSLを適用させるとき、ショッピングカート
をどのように渡すか悩んでいます。


httpとhttpsのドメインは別でしょうか?
私の場合、制約がなければ、同一のドメインにしてしまいます。
別ドメインの場合ですが、やはり1.でしょうか。
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2006-11-13 10:37
引用:

httpとhttpsのドメインは別でしょうか?
私の場合、制約がなければ、同一のドメインにしてしまいます。
別ドメインの場合ですが、やはり1.でしょうか。


ひらさんありがとうございます。

勉強不足で申し訳ないのですが、
httpとhttpsを同一ドメンにすると、どういうメリットがあるのでしょうか。

例:
http://www.myshop.com
https://www.myshop.com

この場合、httpからhttpsに切り替えたときSession情報は継承されるのでしょうか?

httpとhttpsをあまり理解していないものでこの辺の違いを説明していただけると助かります。
ひら
ぬし
会議室デビュー日: 2005/03/04
投稿数: 260
投稿日時: 2006-11-13 11:40
引用:

Accessさんの書き込み (2006-11-13 10:37) より:
この場合、httpからhttpsに切り替えたときSession情報は継承されるのでしょうか?


著名なAccessさんなので、回答するのは非常に畏れ多いのですが、
Session情報は継承されます。Session情報のキーはブラウザの
クッキーに保存され、同一のドメインの場合、httpとhttpsの違いはあれど
クッキー情報は読み取ることができるからです。

このような回答でよろしいでしょうか?
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2006-11-13 12:07
引用:

Session情報は継承されます。Session情報のキーはブラウザの
クッキーに保存され、同一のドメインの場合、httpとhttpsの違いはあれど
クッキー情報は読み取ることができるからです。


ひらさんありがとうございます。助かりました。

実は、米国の某Webホスティングを利用してECサイトを立ち上げる案件があります。
このWebホスティングサービスでは、共有SSL(Shared SSL)とパーソナルSSL(Personal SSL)の2種類をサポートしています。

共有SSLを選択すると、httpとhttpsのドメンが異なるためショッピングカートをドメン間で継承する仕掛けが必要になります。

パーソナルSSLを選択したときは、httpとhttpsのドメンを同一にすることが可能です。

保守性を考えると「パーソナルSSL」を選択した方がよさそうですね。

あと、ASP.NET 2.0のマスターページ、サイトマップ、Menuコントロールを使用してメニューを表示させるとき、httpとhttpsが混在するとURLの相対アドレスが指定できないなどのが問題があります。サイトマップのURL属性にURLを絶対アドレスで設定するのは保守性上あまりよくないと思うのですが。なにかよい方法ないでしょうか。みなさんのお知恵をお借りしたいと思います。

そもそも、httpとhttpsを相互に渡り歩くようなナビゲーションは設計すべきではないのでしょうか。


[ メッセージ編集済み 編集者: Access 編集日時 2006-11-13 12:14 ]
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2006-11-13 12:43
引用:

Accessさんの書き込み (2006-11-13 09:01) より:
たとえば、決済処理だけSSL「https://」対応にするのではなく、ECサイト全体にSSLを
適用するとか。ECサイトすべてにSSLを適用すると、かなりレスポンスが遅くなるのでしょうか。この辺のアドバイスをいただければ助かります。


暗号化は割と軽い処理ですよ。多少の速度低下はありますが、暗号化による負荷以前にネットワークやディスクのI/Oがボトルネックになるので、問題無いかと思います。もちろん、ASP.NETの処理がCPUリソースを結構食っているなら別ですけど。
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-11-13 13:09
httpsで接続したいページへの初回接続時にはHttpModuleを利用してリダイレクトさせる
なんて手が使えるのではないかと思いますが。
どうかな?
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2006-11-13 13:24
引用:

暗号化は割と軽い処理ですよ。多少の速度低下はありますが、暗号化による負荷以前にネットワークやディスクのI/Oがボトルネックになるので、問題無いかと思います。


甕星さんありがとうございます。

ECサイトですからたいした処理はしません。

使い勝手と保守性を考慮すると、パーソナルSSLを選択してすべて「https」下で動作させたほうがよさそうですね。この場合、httpとhttpsの切り替えも不要ですから、サイトマップのURLも相対アドレスで指定できます。

スキルアップ/キャリアアップ(JOB@IT)