個人而言,我嘗試編寫安全的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. 真正不安全的代碼性能
- 2. asp.net c#命令按鈕不能運行命令代碼點擊時
- 3. 圖像的哪些屬性可能會導致尺寸問題?
- 4. 可能會導致Java字節碼驗證失效的問題有哪些?
- 5. 哪些字符可以安全地命名文件和目錄?
- 6. 確定哪些內容已安全傳遞,哪些不是安全內容
- 7. 哪些pdf元素可能導致崩潰?
- 8. iOS:NSPersistentStoreCoordinator addPersistentStoreWithType可能導致哪些錯誤:配置:URL:options:error:
- 9. 運行安全導入命令具有不同的行爲比命令行
- 10. 功能代碼有哪些令人印象深刻的例子?
- 11. 改進代碼可讀性而不會導致性能損失
- 12. 這組SSH Shell命令可以實現哪些功能?
- 13. 春季安全 - 發佈到不安全的網頁導致403
- 14. 哪裏是visual studio代碼命令行?
- 15. 哪裏可以找到Linux核心命令的源代碼?
- 16. 在哪裏可以獲得「setfacl」Linux/Unix命令的源代碼
- 17. 從哪裏可以找到cp命令的源代碼?
- 18. 什麼可能導致Safari拒絕安全SSL websocket ws://?
- 19. 什麼可能導致ASP.NET的executionTimeout不能在IIS下運行?
- 20. 安裝npm模塊導致找不到命令
- 21. .NET Thread不安全代碼
- 22. 如何確切知道哪些不安全的項目會導致瀏覽器警告混合安全和不安全的項目?
- 23. Mkdir命令導致問號
- 24. 哪些Git命令不能在本地執行?
- 25. instagram的短代碼中可能包含哪些字符?
- 26. 我應該處理哪些錯誤?哪些是「致命的」?
- 27. 在我的PHP代碼行中有些不安全?
- 28. 做這些TCL錯誤指示不安全的代碼?
- 29. 代理端點始終導致緩存命中?可能?
- 30. C++代碼導致可能的控制檯輸出錯誤
感謝米奇!我很感謝您的迴應,但是...您給出的回覆讓我相信這是針對非轉義SQL或非DB驅動代碼的一種對策。原因是它都是基於用戶輸入的存儲。 此外,根據我的經驗,URLEncoding往往會「過度編碼」,因爲它必須訂閱URL編碼規則(非常嚴格)。 此外,與ASP.NET我嘗試避免任何Response.Writes。我發現ASP.NET代碼infront控件爲我的HTML提供了更好的結構意識。 雖然我會給你+1,因爲你仍然在技術上有效:) – Thunder3 2009-07-19 03:15:08