2013-03-08 33 views
0

我知道這個問題聽起來像是它已經可以回答了,但留在我身邊。我有一個網站,需要用戶註冊並登錄。在這個過程中,讓我們註冊用戶將提供一個用戶名和密碼,系統將檢查信息,然後POST自己的PHP腳本鹽和散列將密碼存儲在數據庫中之前。在不使用SSL的情況下散列密碼的最佳做法

現在,我認爲這是安全的,鹽和散列密碼總是最好的做法,但最近我想過這是如何發生的,數據必須發送到服務器之前,它可以被哈希和因爲我不' t使用SSL的用戶名和密碼發送未加密,所以我會正確的假設這些信息將以純文本形式發送?

如果是這樣,這是不好的。因此,我可以通過以下兩種方式看到:

  1. 使用SSL並保護用戶和服務器之間的連接並加密發送的數據。

  2. 散列的信息離開用戶之前,這可以使用Javascript

我要實現的第二,但我不知道如何做到這一點來完成。最佳做法是什麼?

在發送信息之前,我一直在想一個AJAX腳本將控制數據並檢查是否首先查找信息,然後再查找信息並散列。

我描述過的這個實現是否存在任何安全隱患?

謝謝你的時間。

+2

問題是,你是然後暴露哈希算法和醃製客戶端,然後攻擊者可以弄清楚。就我個人而言,我堅持SSL是最安全的選擇。 – Lloyd 2013-03-08 11:11:25

+0

使用javascript以某種方式保護它時,有沒有辦法?以這種方式做事總是幫助我用JavaScript來建立自己的技能。 – ragebunny 2013-03-08 11:17:48

+1

我建議你閱讀本頁http://www.matasano.com/articles/javascript-cryptography/。正如Lloyd指出的那樣,解決方案2的問題是用於執行加密的JavaScript仍然以明文發送,如果您可以在JS中擁有合適的隨機數生成器(很多加密算法可免費獲得)在明確沒有問題),但目前這是不可能的。 – 2013-03-08 11:31:33

回答

1

使用SSL並保護用戶和服務器之間的連接並加密發送的數據。

是的,這樣做。

散列的信息離開用戶之前,這可以使用Javascript

這不會保護數據來完成。相反,它將有效地將要發送到服務器的祕密數據更改爲散列版本的密碼。這仍然會以純文本形式發送,攻擊者可以嗅探它並準確知道要發送什麼。

相關問題