2009-05-03 8 views
3

まずは、私はクレジットカードを受け入れる電子商取引サイトで作業しています。 「情報を入力してください」ページから「情報を確認」ページに移動するには、最終的に決済ゲートウェイに送信される前に、クレジットカード情報をどこかに保存しておく必要があります。セッションオブジェクトを暗号化します

私は現在、セッション変数として保存する傾向があります。つまり、私の質問は次のとおりです。

  1. 私はセッションでこれを保存して、いくつかのよく知られているセキュリティの偽のパースをコミットしていますか?
  2. セッションオブジェクトはグローバルですか? 2人で同時に情報を提出すると、他の人の取引で1人のセッションが返される可能性がありますか?
  3. 追加のセキュリティのためにセッションオブジェクトを暗号化/復号化する一般的な方法はありますか。

答えて

3

ui/workflowの観点からは、クレジットカード情報を保存したり、確認する必要はありません。それが間違っていれば、承認されません。ほとんどの電子商取引サイトは、住所、電話番号などを確認した後、最後のステップとしてクレジットカード番号を要求します。

セッションは、特定のセッションに対してグローバルです。他のユーザーとは共有されません。一般的に、他のセッションのデータを取得する方法はありません。そのため、サーバーに格納されているため、暗号化する必要はありません。

ViewStateで機密情報を保存した場合や、QueryStringで渡した場合は、暗号化する必要があります。

0

クレジットカードの請求は、販売プロセスの最後のステップです。しかし、暗号化したい場合は、対称AES(rinjdael)暗号化を使用してください。非常に難しいキーを使用するには、ランダムに作成してセッションにも保存します。クッキーなしのセッションを使用している場合、2人のうちのどれも、あなたが望むまでサーバーから出ることはありません。

ほとんどすべての言語のAESライブラリがあります。 .NETには、システムに含まれています。セキュリティ。暗号化

using System.Security.Cryptography;