首先:我正在接受信用卡的電子商務網站上工作。爲了從「輸入您的信息」頁面進入「確認您的信息」頁面,我需要將信用卡信息存儲在最終被髮送到支付網關之前可以檢索的地方。加密會話對象
我目前傾向於將其存儲爲會話變量。這是說,我的問題是:
- 我是否犯了一些衆所周知的安全假通過存儲這個會話?
- 會話對象是否全局?如果兩個人同時提交他們的信息,一個人的會話是否可以爲他人的交易返回?
- 在.NET中有一種常見的方式來加密/解密會話對象以獲得額外的安全性嗎?
首先:我正在接受信用卡的電子商務網站上工作。爲了從「輸入您的信息」頁面進入「確認您的信息」頁面,我需要將信用卡信息存儲在最終被髮送到支付網關之前可以檢索的地方。加密會話對象
我目前傾向於將其存儲爲會話變量。這是說,我的問題是:
從ui/workflow的角度來看,確實沒有必要存儲信用卡信息或進行確認。如果它是錯誤的,它將不被批准。大多數電子商務網站在確認地址,電話等後要求信用卡號碼作爲最後一步。
對於會話,會話對於特定會話是全局的。它不會被其他用戶共享,並且通常無法在其他會話中獲取數據。因此,不需要對它進行加密,因爲它存儲在服務器上。
如果您將敏感信息存儲在ViewState中或通過QueryString傳遞它,則肯定需要對其進行加密。
申請信用卡是銷售過程中的最後一步。但是,如果你想加密它,使用對稱AES(rinjdael)加密。爲了使用一個非常難猜的密鑰,隨機創建它並將它存儲在會話中。如果您使用的是不需要cookie的會話,那麼兩者都不會離開服務器,直到您需要爲止。
幾乎所有的語言都有AES庫的版本。在.NET中包含在System.Security.Cryptography中
using System.Security.Cryptography;