2011-03-12 150 views
2

我有一個web應用程序,它喜歡在線主機。用戶登錄由散列的密碼組成,該密碼保存在數據庫中,並通過代碼進行驗證,但很簡單,但對於有現場服務器的小型辦公室來說可以。在線安全的web應用程序

但我不認爲這將適用於應用程序託管在線。我考慮手動列出客戶端的IP地址在Apache中阻止從其他機器的訪問。

我還能做些什麼來使訪問安全嗎?證書可能?

+0

因此,您的問題僅針對用戶身份驗證,狀態管理和憑據存儲? – Gumbo 2011-03-12 14:49:09

+0

我的問題是爲了網上應用程序的安全訪問。我不認爲認證足夠強大,因爲密碼存儲爲數據庫上的散列表示。我也擔心任何人繞過身份驗證,訪問數據庫和只能從客戶端機器訪問webapp。 – Santiago 2011-03-12 19:58:22

回答

2

你是什麼意思的「用戶登錄包含哈希密碼」?你會話cookie中使用散列密碼嗎?好了,反正這是一些要點,讓你開始:

  1. 使用HTTPS只(帶有效證件)
  2. 不使用共享的主機(如果必須使用VPS)
  3. 店醃製的哈希在你的數據庫
  4. 密碼,如果該數據庫是不是在本地主機上,只能使用加密連接
  5. 使用的安全和真正的隨機會話ID
  6. 無效/到期您的服務器上的會話
  7. 你可以考慮客戶端證書是否適合您的需要
  8. 手錶XSS,XSRF及類似的漏洞
  9. 只爲了任何改變任何州或數據POST請求
  10. 使用在任何POST參數的隨機令牌改變任何狀態或數據
  11. 不靠餅乾只
  12. 使用DNSSEC如果可能的話

這些僅僅是拇指的一些好的規則,讓你開始。

+0

webapp上的初始屏幕是用戶登錄頁面。用戶輸入他的用戶通行證。通過檢查密碼存儲在已經被散列的數據庫中。我沒有使用任何基於會話的cooie。我以前沒有使用過證書,我將如何執行此操作。一個VPS是我會去的託管選項。你有關於加密連接和客戶端證書的指針嗎?謝謝 – Santiago 2011-03-12 19:54:44

1

首先:安全性不是僅僅爲了使應用程序安全而需要附加的東西。這是一種態度或基本原則,需要在每個思想和每一行代碼中加以考慮。

但是,除此之外:OWASP, the Open Web Application Security Project,維護一個列表Top 10 Most Critical Web Application Security Risks。閱讀並嘗試瞭解每個安全風險。這是您開發安全Web應用程序時需要了解的基本知識(以「知道您的敵人」爲座右銘)。

然後閱讀OWASP Development Guide,其中描述了有關如何開發安全Web應用程序的準則,並嘗試將其建議應用於現有應用程序。

+0

同意,安全不只是一些開關。我正在尋找的是一些技術和程序,我可以做些什麼來提高安全性。目前這是相當基本的,不適合公共領域 – Santiago 2011-03-12 19:59:44