預防Web應用程序的漏洞 |
時間: 2013/2/16 10:43:54 點擊: 16686 |
開發的生命周期有多種不同的劃分方式,但正如圖1所示,它通常包含如下的階段:初始化、規范和設計、實現(編碼)、測試、部署以及停用,這些階段應用開發人員可以不斷地重復迭代。2
盡管開發人員應該在產品的整個生命周期中都關心代碼安全性,3但是他們應該特別關注三個關鍵階段:1 實現。在編碼過程中,軟件開發人員必須使用特定應用領域內避免關鍵漏洞的最佳實踐。這種實踐的例子包括輸入和輸出校驗、識別惡意字符以及使用參數化的命令。4 盡管這些技術在避免大多數安全漏洞方面很有效,但因為缺乏安全相關的知識,開發人員通常并不使用它們或者使用得不正確。邊欄“為什么開發人員不使用安全編碼實踐?”更詳細地討論了這個問題。 測試。有很多技術可以在測試階段使用,包括滲透測試(目前最流行的技術)、靜態分析、動態分析以及運行時的異常檢測。4 問題在于開發人員通常會關注需求功能的測試而忽略安全方面。另外,現有的自動化工具要么在漏洞探測覆蓋度方面比較差要么產生太多的誤報。 部署。在運行時環境中,會有不同的攻擊探測機制。這些機制可以按照不同的級別運行并使用不同的探測方式。它們的使用障礙在于性能開銷以及不準確的結果會打亂系統的正常行為。 開發安全的代碼 為了編寫沒有漏洞的安全代碼,4 基于Web基礎設施的關鍵業務開發人員就要遵循編碼實踐,這個實踐包括了深度防御的措施,它假設所有的安全性預防措施都會失敗。在實現階段依賴多層的安全機制是特別重要的,使用一個預防或保護措施來避免安全漏洞是不夠的。 Web應用程序的特征在于需要三層不同的安全防線:輸
|
上一篇: 馬云:做搜索是為了讓百度睡不著覺 下一篇: 網站流量之如何防止圖片浪費空間流量技巧 |