2010-07-06 50 views
3

我正在尋找最好的可重用的庫和ASP.Net的內置功能,以防止像注射,XSS,CSRF等OWASP前10安全漏洞,也很容易使用工具來檢測這些漏洞供測試團隊使用。最好的圖書館/做法,以防止OWASP前10漏洞

您認爲何時開始在開發生命週期中將安全編碼整合到應用程序中的最佳時機?

+0

我認爲,要防止安全漏洞,最好使用比最佳庫的最佳實踐。 – pakore 2010-07-06 11:32:14

+0

我想是的。這就是我的意思。 – 2010-07-06 11:34:42

回答

4

我的兩分錢:

  • 永遠不要相信用戶的輸入。這包括形式,餅乾,參數,請求...
  • 保持您的庫更新。我們中間每天都有安全漏洞。修補程序已發佈,但如果您不應用它們或升級您的庫,它們就毫無價值。
  • 限制性和偏執性。如果你需要用戶寫他的名字,那麼限制一下,讓他只使用[A-Z]字符等等。嚴格的約束會打擾一般用戶,但它會讓你的系統更安全。
  • 從不記錄關鍵數據。這意味着你不應該記錄用戶使用的密碼(顯而易見),而且你也不應該試圖記錄用戶登錄系統失敗時輸入的密碼(因爲他可能容易犯錯誤猜測)。您可以將此示例擴展到所有關鍵數據。記住,如果它不在那裏,你不必擔心有人試圖獲得它。

和提取wikipedia's CSFR article

  • 需要在GET和POST參數,不僅餅乾認證;
  • 檢查HTTP Referer頭;
  • 確保有沒有crossdomain.xml文件授予意外的存取對 Flash影片[14]
  • 限制驗證cookie的生命週期
  • 當處理POST,無視URL參數,如果你知道自己應該 來自形式
  • 要求在所有表單提交和 副作用URL中使用一個祕密的用戶特定標記可防止CSRF;該 攻擊者的網站不能把正確的 令牌在其提交
3

第一個最佳實踐:在編碼時注意漏洞。如果你想知道你在做什麼。

+0

這是有道理的。在任何編碼開始之前教育團隊會更好。 – 2010-07-06 11:49:25

4

我的經驗是,僅僅給開發者工具箱,並希望最好不實際工作那麼好。安全性是代碼質量的一個方面。安全問題是錯誤。就像所有的bug一樣,即使是知道更好的開發者,最終也會寫出它們。解決這個問題的唯一方法就是建立一個流程來捕捉錯誤。

想想你需要什麼樣的安全過程。僅自動測試?代碼審查?手動黑盒測試?設計文件審查?你將如何分類bug跟蹤系統中的安全問題?您如何確定解決安全漏洞的優先級?你可以給客戶什麼樣的保證?

的東西,可以幫助你開始是OWASP的ASVS驗證標準,它可以幫助您確認您的安全認證處理實際工作:http://code.google.com/p/owasp-asvs/wiki/ASVS