VB.NET舊系統

選擇在VB.NET程式中直接驗證密碼,還是通過SQL Server存儲過程(SP)來判斷,主要取決於您的應用場景和安全需求。每種方法都有其優點和局限性。以下是兩種方法的比較,幫助您做出決策:

在VB.NET中驗證密碼

優點:

靈活性:在應用層進行密碼驗證允許更多的自定義邏輯和錯誤處理,便於實現複雜的安全策略。
性能:減少對資料庫的請求,尤其是在高流量的情境下,可以減輕資料庫的負擔。
安全性:避免在網絡中傳輸明文密碼或密碼的敏感信息,只有哈希值和鹽值在客戶端和服務端之間交換。
局限性:

代碼重複:如果有多個應用需要進行密碼驗證,則可能需要在每個應用中實現相同的驗證邏輯。

通過SQL Server SP存儲過程驗證密碼

優點:

集中管理:將密碼驗證邏輯集中在資料庫層,易於管理和維護。
一致性:對於多個應用共享同一用戶資料庫的情況,使用存儲過程可以確保密碼驗證的邏輯一致。
局限性:

性能考量:每次驗證都需要執行存儲過程,增加資料庫的負擔,尤其是在高流量情況下。
安全風險:如果不適當管理,存儲過程可能會暴露更多的資料庫細節給應用層,增加安全風險。

結論

如果您重視靈活性和希望減輕資料庫負擔,或者應用具有較高的安全要求(比如不希望在網絡中傳輸任何形式的密碼信息),那麼在VB.NET程式中進行密碼驗證可能更適合。

如果您的環境中有多個應用需要進行密碼驗證,且希望確保驗證邏輯的一致性,或者希望將業務邏輯集中管理,則選擇通過SQL Server存儲過程驗證密碼可能更合適。

最終選擇應基於您的具體需求、安全考慮和維護便利性來決定。

具體需求包括:系統的環境是不是只有單一版本程式語言(例如:ASP.NET 3.5, VB.NET,  ASP.NET MVC5, ASP.NET Core6…)共用同一個資料庫作權限驗證、新增帳號預設密碼、變更密碼…等,其他程式。

前一篇文章資安密碼工程,資料庫中的 Hash(SHA512) and Salt要儲存什麼格式?
下一篇文章資安密碼工程,ASP.NET VB、C#與SP中用SALT產生SHA512
學經歷 淡江大學資訊管理研究所 諸銘科技軟體發開部經理與教育事業部總監 專長 網路創業、網路行銷、創業貸款、個資保護、資訊安全、程式設計(ASP.NET VB.NET MVC C# Core 6) 資安與個資證照:CompTia Security+ , ISO 27701。 演講與課程經歷 工研院講師 勞動部微型創業鳳凰貸款顧問 台北市社會局 衛福部中央健保署 新北市政府勞工局 管科會 中國生產力中心 中衛中心 中山管理教育基金會 中華軟協 南科產協 青創會 青創會內訓 臺北青年職涯發展中心 經濟部樂活創業人才班 中小企業總會 外貿協會 高雄醫學大學 雲林科技大學 台北醫學大學 銘傳大學 明新科大 中台科大 台灣科技大學 師範大學 大葉大學 台北城市大學 聖約翰科技大學 萬能科技大學 輔英科大 明新科大 美和科大 嘉南藥理大學 東南科大 亞太創意技術學院 格致商工 霧峰農工 三重商工 新店戒護所 台南就業處 台灣知識庫 台北景福扶輪社 富邦人壽 台北國際書展

回覆留言

Please enter your comment!
Please enter your name here