簡體   English   中英

在服務器端(控制器)進行驗證是一種很好的做法嗎? ASP.NET MVC

[英]Is a good practice to make validation on server-side (controller) ? ASP.NET MVC

有了客戶端 (瀏覽器)的輸入,我需要在服務器端執行一個事務,在數據庫上執行特定的事務業務邏輯 )。

在進行交易之前,對用戶輸入進行驗證是一種很好的做法嗎? 我違反了“ 單一責任原則 ”嗎?

編輯: 單一責任原則 - 我的壞,這里沒有意義。

最好的祝福。

盡管在客戶端可能已經檢查了輸入,但有幾個原因導致在服務器端進行驗證是絕對必要的:

  • 可能有一個不同的客戶端與您的MVC應用程序通信 - 一旦通過身份驗證,任何能夠發送HTTP請求並處理響應的人都可以與您的后端通信。 有人可能會編寫跳過驗證的代碼,或者惡意推送不良數據。 您的服務器端必須准備好它。
  • 您的客戶端代碼中可能存在錯誤 - 最終,您的服務器端代碼負責數據一致性。
  • 檢查時間很重要 - 系統狀態可能會在請求到達服務器時發生變化。 在一個典型的例子中,在客戶端驗證運行時可以提取100美元,但是當請求到達服務器時,其他人可能已經從賬戶中提取了資金。

這不違反單一責任原則,因為客戶端和服務器端驗證有不同的用途。 客戶端驗證用作向用戶提供有效和無效的可視提示,而服務器端驗證可保持數據一致性。

在進行交易之前,對用戶輸入進行驗證是一種很好的做法嗎?

是。

如果一個男人來到你家門口說他們是女王,你會讓他進來嗎?

同樣,您應該驗證服務器端 - 因為從您的客戶端(瀏覽器)發送的數據不可信任。

進行服務器端驗證至關重要,因為客戶端驗證可以通過禁用JavaScript或使用fiddler或curl等工具來傳遞,另一方面如果你想擁有一個用戶友好的應用程序客戶端驗證將是一個使用的關鍵工具。

Jquery驗證是用於客戶端驗證的前端庫

MVC模型驗證可以生成客戶端和服務器端驗證

遠程屬性是一個有用的屬性,我想是看看你的情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM