2014-09-03 31 views
-1

我得到了一些漂亮的導軌應用程序工作,它的所有jiffy和和平。我想要保護一小部分,只是感覺錯誤地按照現在的方式執行 - 我的登錄過程中,我使用帶有遠程選項的form_tag通過POST發送文本和密碼字段的內容,原因很明顯。如何增強HTTP認證安全性?

僅通過HTTP發送密碼讓我感覺很髒。從這裏我可以看到,我有以下選擇:

  1. 學習生活,並希望最好
  2. 通過學習一個東西真棒有我的控制器做魔術軌輔助-I-dunno-關於技巧
  3. 構建一個單獨的應用程序,該應用程序可以在HTTPS上運行,並通過回到原來的方式讓生活變成活生生的地獄。
  4. JavaScript使用加密

不知怎的,我覺得我最好的選擇是4 - JavaScript的加密。 但是,如果用戶鍵入他/她的密碼,並且它被服務器生成的部分加密,它應該是安全的(解決通過HTTP以純文本發送問題的關係)並解決我的問題I猜測。但在軌道方面,爲了實現這一目標,我的數據庫中保存了(是的,我還有很多事情可以覆蓋)簡單的密碼。

我需要一些幫助 - 一些指針。

+5

不,解決方案是使用HTTPS的應用程序。不過,我不確定爲什麼會讓你回到原點。 – Bergi 2014-09-03 17:48:19

+0

我自己並不使用Rails,但我很難相信啓用SSL會涉及到應用程序的完整重寫。無論您在前端使用何種形式的加密,您絕對不應將純文本密碼保存在數據庫中。 – StriplingWarrior 2014-09-03 17:49:22

+1

閱讀以下內容:http://security.stackexchange.com/q/17129/8749,http://security.stackexchange.com/q/8596/8749,http://security.stackexchange.com/q/47619/8749,http://security.stackexchange.com/q/53488/8749 – Bergi 2014-09-03 17:52:45

回答

2

爲什麼不應該使用選項4:執行錯誤操作並將用戶置於危險中的風險比使用已存在的東西時要高得多。

你應該怎麼做:通過https傳輸它來保護你的用戶數據。把

config.force_ssl = true 

config/environment/production.rb,你準備好了。 (那麼告訴網絡服務器在哪裏適當的證書是...)

+0

不會使所有流量加密:S包括不需要驗證的部分? – MiningSam 2014-09-03 17:55:13

+0

是的,但...誰在乎?無論如何,大多數網站正在慢慢遷移到這種行爲(例如Facebook)。我幾乎沒有看到將HTTPS限制到您網站特定部分的原因。如果你只想保護一個控制器,你可以看看[這個答案](http://stackoverflow.com/a/14700213/3340665)。 – GhostGambler 2014-09-03 18:04:07

+0

謝謝!該評論有我正在尋找的答案! – MiningSam 2014-09-04 17:53:21