3

下面是一些俗稱的做法爲確保MVC應用程序:筆測試你的MVC應用程序

  • 向後編碼您的輸出
  • 參數化的SQL
  • 測試你的搜索和轉發
  • 1路哈希密碼
  • 鎖定帳戶或限制登錄嘗試
  • 訪問文件系統時使用基於代碼的模擬
  • 用鎖定用戶名
  • 使用蜂蜜罐或驗證碼的表單提交訪問SQL到如果有任何我錯過了或歪曲了請隨時應對作出貢獻機器人

當您測試自己的軟件時,您使用或考慮了哪些其他技術/最佳實踐。在申請生活之前,你怎樣「踢輪胎」?

您使用哪種筆測試服務或軟件?

+1

我建議你社區維基這個問題。 – gahooa 2010-01-27 06:27:07

+0

完成。好主意。 – 2010-01-27 06:28:04

回答

4

所有使用模型綁定的方法應該使用可綁定屬性的白名單或黑名單進行保護。

string[] allowedProperties = new[]{ "Title", "Description"}; 
UpdateModel(myObject, allowedProperties); 

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Create([Bind(Include="Title,Description")] MyObject object) 
{ 

} 

這當然是防止製作的請求來自試圖在不打算方法來更新/操縱你的對象。

3

你的名單很好,雖然它有點含糊。例如md4是一種單向散列,但它非常不安全,因爲我可以在不到一天的時間內在我的桌面上產生衝突。具有大量鹽分的sha256是一種更安全的方法。 (我知道即使這是描述不完整,不要火焰)

從來沒有抓住所有安全檢查列表,將全面工作。特定的應用程序可能有特定的漏洞。有時候,這些缺陷可能是邏輯錯誤,實際上沒有分類。

OWASP Top 10 Web應用程序漏洞是您應該學習的極好資源。最值得注意的是,你在名單上遺漏了XSRF,這可能是一次毀滅性的攻擊。有許多您沒有列出的基於「接收器」的攻擊。例如,如果攻擊者可以通過他選擇的路徑來打開? A Study In Scarlet發生了許多針對PHP的這些攻擊。

1

所有建議都適用於任何Web應用程序,而不僅僅是MVC應用程序。

一個特定於MVC的建議可能就像「瘦身控制器,胖模型」一樣。