2010-09-11 45 views
0

入門如果一個需要創建一個辦公室網站(即作爲客戶端/客戶/員工的平臺)登錄並訪問共享數據,有什麼安全方面的考慮。安全注意事項 - 辦公室網站/ GAE上

給你更多的細節, 辦公室門戶已在django/python開發,並通過GAE託管。本質上,終點帶有登錄/密碼以進入門戶並訪問數據。

我想知道: 一)什麼是我們可以做的事情在一個高安全級別的帶來。基本上數據是關鍵的,因此只需要被授權的人員訪問。所以想使它這樣說:「這個應用程序是安全的,因爲 - 一個如何安全地把他的密碼含義,進入系統(授權)的唯一途徑就是通過密碼泄露(由人),並沒有任何的hackish辦法。」 :) b)我們可以使用https託管GAE(appspot.com)上的應用嗎? c)是否有更好的方法來保護密碼以外的密碼(我聽說過ssh密鑰/證書)。但最終用戶可能不是高科技的頭腦。

回答

1

總是有usabiity和之間與危機干預的選擇。您實現的安全功能越多,使用它就越困難。

我們可以使用https託管GAE(appspot.com)上的應用嗎?

是的,但不是在你自己的域名上,只能在appspot.com上。如果您服務您的應用程序關閉了自己的域名,你必須直接通過應用程序的appspot域中的所有安全流量(在你自己的域名,你必須買一個SSL證書,你需要一個專用的IP等)。如果你真的必須這麼做,有辦法通過你自己的域來路由SSL流量,但是因爲這需要另一個運行類似stunnel的服務器,所以它給攻擊者提供了另一個攻擊目標。

如果您的應用程序具有用戶名/密碼認證,應用程序是真的像一個如何安全地把他的密碼,如果你在你的代碼沒有bug可能被利用作爲安全。關於「hackish way」:在GAE上,您不必關心服務器安全性,唯一可能的攻擊目標就是您的代碼。

這些是確保您的應用程序的一些策略:

  • 良好的質量保證和代碼審查發現嚴重的安全漏洞; Django已經內置了針對諸如XSRF和SQL注入這樣的微小攻擊的保護,因此請查看與關鍵數據和身份驗證相關的代碼部分
  • 想象其他身份驗證方法,如客戶端證書(易於使用對於最終用戶來說,大多數瀏覽器都支持這種本地和現代操作系統的證書存儲;對於GAE可能不是一件容易的事情)
  • 每個安全環境的最薄弱點是用戶,因此您應該通知用戶處理敏感數據和密碼的良好做法(順便說一句,要求每隔幾個月更改一次密碼並不能提高安全性,因爲它通常會導致用戶記下密碼,因爲他們無法記住密碼,所以您失去了更多的安全性)
  • 您應該有良好的入侵檢測來儘快鎖定攻擊者,例如行爲分析;例如:如果來自美國的用戶通過愛沙尼亞的IP登錄,這是可疑的
  • 網絡訪問限制:您可以阻止訪問關鍵數據的企業以外的所有IP範圍,如果密碼泄露,這會最小化可能的影響
  • 提高最終用戶安全性:如果其中一個用戶的計算機上有一個可以進行屏幕捕獲或鍵盤記錄的特洛伊木馬程序,那麼您的所有安全性都會丟失,因爲攻擊者在觀看敏感數據時只能看用戶;你應該有一個良好的安全警察在您的企業
  • 強制用戶通過SSL訪問您的網站,你不應該讓用戶選擇,如果他們願意的安全OCER的舒適性不
+0

應用程序引擎企業對非SSL -appspot域名,並且該問題中的用例看起來像是AEFB的一個很好的候選者,因爲它看起來像一個Intranet類型的應用程序。 – geoffspear 2010-09-12 00:11:16