2012-12-28 24 views
9

我目前正在構建一個設置以獲取信用卡信息。採用以下結構:改進服務器驗證中的密碼安全性

服務器1:

  • MySQL用戶設置爲只讀
  • 舉行的登錄憑據。

我使用PBKDF2哈希,完成與我建立在this code基礎上的類。

服務器2:

  • MySQL用戶設置讀寫
  • 擁有所有的客戶信用卡信息

我的問題:

如果服務器1以這種格式存儲遊說詞:alg orithm:迭代:鹽:哈希

例如:sha256:1000:Pe27BkIKkBHklogp9Io80iRKtF+6koly:nrYUwOlixwJECRcjBRKwQ+MVNMTbnYnm

如果服務器一個被攻破,但在我看來,這種格式具有密碼會使他們更容易破解密碼的網站並訪問用戶的信用卡信息。

這是我需要使用Mysql(AES_ENCRYPT()和AES_DECRYPT())的情況嗎?

我在想這個嗎?

有沒有更好的方法來保護服務器1中的信息?

更新基於評論

我建我的暖氣和空調公司制度。任何在線支付的人都可以將他們的cc信息存儲在quickbooks中,如果他們選擇的話。我有幾個大客戶,我們在辦公室按月付賬,並通過桌面終端處理cc。這些客戶端在我們的服務器上有客戶資料,他們可以訪問它們。這些是我想允許存儲cc信息的客戶端。通過這種方式,我不必將cc信息存儲在辦公室的紙張上供任何人查找。

+10

如果確實存儲了信用卡信息*,則需要閱讀PCI文檔並遵守它。 – deceze

+0

我實際上沒有做cc處理。我只需要將信息存儲在我的公司系統中,以便在將來通過快速在線支付進行支付 –

+6

無論您是否正在處理與處理無關,PCI合規性是關於存儲CC詳細信息 –

回答

2

說實話,如果我設法損害服務器1,我不會試圖破解這些密碼。他們應該是安全的。我更可能做的是嘗試在服務器上安裝我自己的代碼,以在用戶登錄時向我發送密碼和/或信用卡信息。例如,假設您在一個名爲login.php的文件中處理身份驗證。如果我可以妥協login.php,那麼當它驗證登錄時,我可以讓它執行curl命令或將登錄信息發送到我自己的服務器,以便我可以收集它。

但是我離題了......答案是您的用戶登錄細節散列應該是安全的,就像您描述的那樣。如果服務器1的數據庫受到威脅,它應該儘可能安全。你可以在你的PHP代碼中添加一層模糊處理來做一些事情,比如在鹽的散列中或類似的東西上,這樣有人可以訪問數據庫但不知道代碼會更難以知道你用什麼過程來散列密碼,這將避免黑客試圖暴力密碼,如密碼,iloveu等。我也高度建議在服務器2上的信用卡信息以加密格式存儲使用AES_ENCRYPT()或PHP的mcrypt_encrypt()函數。

確保您通過POST表單清理全部輸入,並且您應該很好。

+0

是的,如果我這樣做,我一定會加密cc的。現在,我將它們存儲在計算機上的TrueCrypt驅動器中的Word文檔中。我只有46個客戶我們以這種方式開具賬單.....也許不值得再努力。但如果他們可以在那裏更新他們的用戶檔案中的cc信息將會很好。無論如何感謝輸入 –

相關問題