2009-10-26 71 views
0

我正在編寫一個Web應用程序,用戶需要輸入一次性引腳(OTP)的某些操作 - 類似於大多數銀行網站。在會話中存儲OTP是否安全?

所以我基本上需要生成一個隨機字符串,將它存儲在某個地方,將它發送給用戶,然後根據我存儲的那個驗證輸入的引腳。

將此生成的字符串存儲在ASP會話對象中是否安全?

回答

0

會話是客戶端無法訪問的服務器端集合(而不是cookie/viewstate)。它應該從客戶端操作中解脫出來。

不過,我認爲你應該將這些OTP存儲在數據庫中,並與這些OTP進行比較。

+0

爲什麼要將OTP存儲在數據庫中?我只想做最簡單的事情,可能可行? – 2009-10-26 10:02:08

+1

我認爲Dokie已經回答了這個問題;-) – weismat 2009-10-26 10:16:29

+0

如果用戶關閉瀏覽器,去喝杯發回完成任務呢?會話變量將會丟失。如果這正是你想要的,那麼會話將會很好。 – 2009-10-26 10:17:19

1

請注意,任何內存中的會話數據都不可轉移到Web場中的其他Web服務器,因此如果此站點需要擴展,那麼您可能希望將OTP關閉到Web服務器。當然,除非你使用粘性會話。

4

不要存儲PIN碼。散列它(SHA算法之一,最好用一些鹽)並存儲散列。然後將用戶輸入的哈希與您存儲的哈希進行比較。然後,如果你的存儲(不管是在會話對象,某個數據庫還是其他任何地方)受到攻擊,攻擊者就不會知道PIN是什麼。

+0

好主意謝謝 – 2009-10-27 09:30:14

相關問題