個人而言,我嘗試編寫安全的ASP.NET代碼。然而,我曾經爲註冊服務機構工作(高欺詐目標),所以我對寫的代碼變得十分偏執。是否有任何ASP.NET功能我應該仔細審查(除了SQL訪問 - 我知道不要做動態SQL)。哪些ASP.NET命令可能導致不安全的代碼?
3
A
回答
4
這是一個很好的MSDN文章:Security Practices: ASP.NET 2.0 Security Practices at a Glance。
摘錄:
如何防止跨站腳本
驗證輸入和輸出編碼。 通過驗證輸入的類型,長度,格式和範圍來限制輸入。使用 的HttpUtility.HtmlEncode方法 編碼輸出,如果它包含來自用戶的輸入 ,諸如從形式 字段,查詢字符串和餅乾或從其他來源 ,如數據庫的輸入。 不要只是將輸入回送給用戶 而不驗證和/或編碼 數據。以下示例顯示如何編碼一個表單字段 。
Response.Write(HttpUtility.HtmlEncode(Request.Form["name"]));
如果返回包含 輸入到客戶端的URL字符串,請使用 HttpUtility.UrlEncode方法編碼 這些URL字符串,如下所示。
Response.Write(HttpUtility.UrlEncode(urlString));
如果您有需要接受 一系列的HTML元素的網頁,如 通過某種富文本輸入 場,你必須禁用ASP.NET 請求驗證的頁面。
打開自定義錯誤,以保持誤差私人
<customErrors mode="On" defaultRedirect="YourErrorPage.htm" />
1
決不相信用戶的輸入。永遠不要假設客戶端驗證可以防止錯誤的輸入數據。始終確保您的web.config中的ValidateRequest =「true」和EnableEventValidation =「true」:
相關問題
- 1. 這些AWK命令有哪些功能?
- 2. 真正不安全的代碼性能
- 3. 循環的哪些方面會導致VBA代碼崩潰Excel?
- 4. 以下哪些選項會導致更好/性能更高的ActionScript代碼?
- 5. asp.net c#命令按鈕不能運行命令代碼點擊時
- 6. 圖像的哪些屬性可能會導致尺寸問題?
- 7. 全局安裝的node-dev會導致錯誤「找不到命令」
- 8. 哪些字符可以安全地命名文件和目錄?
- 9. 可能會導致Java字節碼驗證失效的問題有哪些?
- 10. CKEditor中有哪些execCommand命令可用?
- 11. 哪些選項可用於:g命令?
- 12. 確定哪些內容已安全傳遞,哪些不是安全內容
- 13. Ruby代碼不能在Windows命令行
- 14. 我的ASP.NET代碼有多安全?
- 15. 安全我的ASP.NET代碼演示?
- 16. iOS:NSPersistentStoreCoordinator addPersistentStoreWithType可能導致哪些錯誤:配置:URL:options:error:
- 17. 哪些pdf元素可能導致崩潰?
- 18. 使「不安全」代碼塊「安全」
- 19. 功能代碼有哪些令人印象深刻的例子?
- 20. 運行安全導入命令具有不同的行爲比命令行
- 21. 分析的命令導致
- 22. 可以使用哪些工具從命令行調試託管代碼?
- 23. 改進代碼可讀性而不會導致性能損失
- 24. 這組SSH Shell命令可以實現哪些功能?
- 25. 哪裏是visual studio代碼命令行?
- 26. 哪裏可以找到Linux核心命令的源代碼?
- 27. 在哪裏可以獲得「setfacl」Linux/Unix命令的源代碼
- 28. 哪裏可以找到「更多」命令的源代碼?
- 29. 從哪裏可以找到cp命令的源代碼?
- 30. 春季安全 - 發佈到不安全的網頁導致403
感謝米奇!我很感謝您的迴應,但是...您給出的回覆讓我相信這是針對非轉義SQL或非DB驅動代碼的一種對策。原因是它都是基於用戶輸入的存儲。 此外,根據我的經驗,URLEncoding往往會「過度編碼」,因爲它必須訂閱URL編碼規則(非常嚴格)。 此外,與ASP.NET我嘗試避免任何Response.Writes。我發現ASP.NET代碼infront控件爲我的HTML提供了更好的結構意識。 雖然我會給你+1,因爲你仍然在技術上有效:) – Thunder3 2009-07-19 03:15:08