我遇到了一些代碼,其中原始程序員在頁面中使用<%# ... %>
,因爲它不涉及數據綁定。它被用來輸出一個字符串到頁面。這安全嗎? <%#
在這種情況下的行爲類似<%=
還是<%:
?以非數據綁定方式安全使用<%#
0
A
回答
1
是否<%#的行爲很像0%=在這種情況下或<%:?
只有標籤內部的代碼顯式調用Response.Write()或類似的。
1
對<%#...%>之間的表達式進行評估並轉換爲字符串。結果被分配給控件的屬性,或者如果沒有控件,則添加一個DataBoundLiteralControl。它安全嗎?是。當第一次訪問頁面時,ASP .Net會解析它,生成一個新類並將其編譯爲程序集,包括這些塊中的代碼。
之間是什麼<%= ...%>,作用於同前,但結果是不分配給任何屬性,它是由HtmlTextWriter.Write方法中使用,其中,順便說一句,返回無效,所以它不會工作,如果你嘗試在數據綁定表達式中使用它。
怎麼樣的:
這可以在兩個構建體中,:爲安全加分,因爲評估的字符串是通過HTML編碼System.Web.HttpUtility.HtmlEncode。 因此,您可以使用它與數據綁定構造<%#或使用作家構造<%:(無=)。
提示
寫的東西在這將給編譯錯誤,請點擊查看完整的編譯源代碼,並導航到該行的結構。黑盒子不再是黑盒子了。
相關問題
- 1. 'sass'以非線程安全的方式
- 2. 以安全的方式發送數據
- 3. 以編程方式將非數據綁定列添加到gridview
- 4. MvvmCross:以編程方式數據綁定
- 5. 以安全方式乘以分數c#
- 6. WPF數據綁定線程安全性?
- 7. WPF DataTemplate的安全數據綁定
- 8. WPF數據綁定線程安全嗎?
- 9. 以編程方式禁用android非安全鍵盤鎖
- 10. 使用<%= %>和表達式數據綁定寫入響應
- 11. Knockout.js安全綁定
- 12. 推薦使用Cordova安全存儲數據的方式?
- 13. 使用MySQLi連接數據庫與php的安全方式
- 14. 使用PHP PDO/MySQL連接數據庫的安全方式?
- 15. 從線程更新數據綁定數據表安全嗎?
- 16. 安全模式可以訪問安全/非安全內存如何?
- 17. 捆綁Sql腳本以安全的方式執行它們
- 18. 不使用PDO :: PARAM可以安全地綁定嗎?
- 19. 跨服務器的表單數據以安全的方式
- 20. 以安全的方式通過互聯網發送數據
- 21. rails如何以安全的方式將數據提供給ajax?
- 22. 以安全的方式存儲MySQL連接數據
- 23. php,如何以安全的方式發送表單數據?
- 24. 如何使用樣式數據綁定?
- 25. 安全的非平凡數據依賴/自定義引用?
- 26. 如何以類別安全的方式綁定到DataGridRow的IsSelected屬性?
- 27. WCF綁定傳輸安全使用Windows憑據
- 28. 不同的數據綁定方式
- 29. 如何以安全的方式使用Cookie記住用戶?
- 30. 數據綁定不能使用從JavaScript以編程方式設置的模板
你確定Page.DataBind沒有被調用嗎? –
對。如果DataBind沒有被調用,則不會輸出任何內容。 –
我使用的技術與使用嵌套母版頁時將動態鏈接網址置於內容佔位符中時所描述的相似。如果在包含嵌套佔位符的佔位符中有動態代碼('<%='),ASP.NET會發出抱怨。通過用'<%#Page.ResolveUrl ...'替換它,你可以在後面的代碼中調用Page.DataBind來支持這兩種情況...不是一個好的解決方案,但它確實有效。 –