Dot-Net

使用新技術時的安全問題

  • August 17, 2009

您是否發現當您使用一項新技術時,您永遠無法確定您在程式碼中留下了哪些安全漏洞?

我已經使用 ASP.Net Web Forms 大約 5 年了,我相當有信心我的程式碼至少足夠安全,可以阻止大多數已知的攻擊。回顧我的許多早期程式碼,我在許多安全領域,尤其是查詢字元串和視圖狀態中不知不覺地留下了漏洞,但我覺得隨著時間的推移,我了解了漏洞是什麼,並確保我不會再犯同樣的錯誤。

但是,我最近在 ASP.Net MVC 中啟動了一個新項目,但我真的不知道我要留下哪些安全漏洞。僅這個原因就幾乎讓我無法繼續這樣做。我現在正在瘋狂地閱讀它,但我確信我學到的知識還不足以使它盡可能安全地使用 Web 表單。你們怎麼做才能確保自己不會受到攻擊?

編輯:開始賞金好奇看看是否還有更多意見

這是一個非常困難的問題,可能沒有很好的答案。但是,您可以採取一些措施來增加在使用新技術時保護自己安全的可能性。

  1. 請記住以下幾點:存在三種類型的漏洞。您正在使用的框架特有的問題(例如 Ruby on Rails 公共控制器問題),您建構的應用程序類型特有的問題(例如 Web 應用程序必須擔心 XSS),以及您的應用程序特有的問題特別是。
  2. 確定您使用的新技術如何緩解應用程序類型的安全漏洞。例如,ASP.Net MVC 如何緩解 XSS?它如何緩解 SQL 注入?如果文件中沒有答案,那麼請弄清楚您將如何解決這些常見的漏洞類別。另外,暫停一下,因為如果框架不能緩解這些問題,那麼框架開發人員可能沒有優先考慮安全性,也可能沒有編寫一個非常健壯的框架。
  3. 弄清楚您為什麼需要安全性以及您要保護什麼。例如:您的應用程序在查看敏感數據之前是否需要授權?如果是,請確定框架為授權提供了哪些功能。
  4. 在文件中查找安全部分。通常已知的問題都會記錄在案,但人們非常關註解決問題,以至於他們不去尋找它。
  5. 防禦性編碼並註意使用者輸入的使用方式。慷慨地定義什麼是使用者輸入。例如,querystring 或 post 欄位是顯而易見的,但在許多 MVC 框架中,URL 指示執行什麼程式碼(例如,請參閱 Ruby Routes 漏洞)。非常了解數據的處理方式
  6. 對您的業務邏輯進行壓力測試,並找出它可能會如何被濫用。

簡而言之:仔細處理使用者輸入,閱讀現有文件,確定您需要什麼安全性,並弄清楚框架如何緩解常見的漏洞類別。意識到安全是重中之重,關注是戰鬥的 50%。

引用自:https://stackoverflow.com/questions/951334