2012-07-30 59 views
2

我正在創建一個簡單的註冊表單,我想知道是否有人可以給我一些最佳實踐列表。我知道註冊表單之間可能有所不同,但可能需要提供一些指導方針或注意類似漏洞的內容。我的數據訪問層將使用Entity FrameWork和linq來處理查詢。MVC3註冊表格最佳實踐

實踐,我會覺得有道理:

  • 驗證表單當模型綁定到業務對象
  • 服務器端驗證和客戶端驗證(最新最好的方式做到這一點?)
  • 檢查SQL注入?我的帳戶管理器對象(?對此有何最佳做法)
  • 使用依賴注入

我的註冊字段將是以下幾點:

  • 電子郵件(必須是一封電子郵件,必須是來自幾個網站的電子郵件,即@ gmail.com,@ yahoo.com,@ live.com)
  • 學校
  • 密碼
  • 狀態(靜止下降3個左右選擇向下)

我也很喜歡電子郵件激活,以及當用戶將不得不去他或她的電子郵件,以便使他們的賬戶活性。

回答

2
  • 使用System.ComponentModel.DataAnnotations namesapce for 驗證您的視圖模型。
  • 是的,做服務器和客戶端驗證
  • 實體框架已經處理了SQL注入
  • 考慮使用「驗證碼」,如果你擔心垃圾郵件機器人的 表單提交

對於電子郵件部分:

在過去,我創建了一個數據庫表,它將電子郵件映射到隨機生成的字符串。當您發送完整的註冊電子郵件,提供使用該隨機字符串或GUID或任何一個鏈接:

mydomain/completeregistration/7593098573903 whatever

現在,一旦客戶遵循鏈接,您處理該請求,紀念他們登記爲已完成在數據庫中。 (這也應該具有防止對該URL的後續請求的效果)

2

使用客戶端和Serverside驗證。 永遠不要信任客戶端驗證

使用DataAnnotations和jQuery驗證插件。您不需要編寫客戶端驗證功能。當您使用HTML Helper方法呈現HTML元素時,MVC會執行此操作。

Entity Framwork將構建參數化查詢。所以你不需要擔心SQL注入。但是,如果您正在使用實體框架手動執行SQL語句/存儲過程,則您有責任對其進行參數化。