2008-11-17 188 views
23

什麼是其他ASP.NET安全最佳實踐?ASP.NET安全最佳實踐

到目前爲止確定這裏列出:

  • 每當你移動一個應用到生產始終生成新的加密密鑰和管理員密碼。

  • 切勿直接或以加密形式存儲密碼。始終存儲單向散列密碼。

  • 始終將連接字符串存儲在Web.config標記中,並使用受保護的配置提供程序(RSA或DPAPI)在配置部分對其進行加密。請參閱example here

  • 使用具有最低權限的用戶標識連接到SQL Server或您正在使用的數據庫。例如,如果您只從某個應用程序模塊執行存儲過程,則必須創建一個僅具有執行權限的用戶標識。

  • 如果您想在頁面上使用基於角色的安全性,請使用PrincipalPermission

    [PrincipalPermission(SecurityAction.Demand, Role="Admin")] 
    public class AdminOnlyPage : BasePageClass 
    { 
        // ... 
    }
  • 始終使用參數來防止SQL查詢SQL Injection

    1. 考慮在IIS服務器上安裝URLScan以防止SQL注入。 此外,爲了防止XSS攻擊。您可以使用MSFT的AntiXSS庫而不是內置的編碼輸出,而不是使用HttpServerUtility中的內置HtmlEncode。
  • 上的customErrors始終保持在網絡配置,讓你的錯誤/異常私人

    <的customErrors模式= 「ON」 的defaultRedirect = 「MyErrorPage.htm」/ >

  • 在Web應用程序,始終驗證用戶對html標籤或任何腳本的輸入。

  • 切勿存儲敏感信息,例如cookie中的密碼。

  • 如果發生異常,不要顯示系統錯誤消息,堆棧跟蹤等。
+1

這應該是一個維基。 – NotMe 2008-12-01 06:35:20

+0

看看http://gosecure.github.io/security-cheat-sheet/ – SPoint 2017-06-05 19:40:06

回答

0

雖然頁面上顯示從數據庫的內容,你可以使用HttpServerUtility.HtmlEncode編碼輸出,以避免跨站點腳本(XSS)攻擊。

0

考慮在IIS服務器上安裝URLScan以防止SQL注入。
此外,爲了防範XSS攻擊,我將使用MSFT的AntiXSS庫而不是內置的編碼輸出,而不是HttpServerUtility中的內置HtmlEncode。

4
  1. 切勿在Cookie中存儲密碼等敏感信息。
  2. 如果發生異常,不要顯示系統錯誤消息,堆棧跟蹤等。