我正在开发一个简单的 ASP.NET 应用程序来证明 AntiXss 库的使用。该库非常强大,除了在 aspx 页面中使用 Eval() 之外,它对我来说工作得很好。例如,如果我有一个如下标签控件:
<asp:Label runat="server" ID="CommentsLabel" Text='<%# Eval("Name") %>' />
我将如何使用 AntiXss?
我按照这里提到的这个示例进行操作,并通过执行以下操作将库添加到标签控件:
<asp:Label runat="server" ID="CommentsLabel" Text='<%#Microsoft.Security.Application.AntiXss.HtmlEncode(((System.Data.DataRowView)Container.DataItem)["Comments"].ToString()) %>'/>
我的教练仍然告诉我它很脆弱,我不知道为什么。然后,AntiXss.HtmlEconde()
我没有使用 ,而是Encoder.HtmlEncode()
在上一行中使用
<asp:Label runat="server" ID="CommentsLabel" Text='<%#Microsoft.Security.Application.Encoder.HtmlEncode(((System.Data.DataRowView)Container.DataItem)["Comments"].ToString()) %>'/>
编辑:
根据我的导师使用的扫描工具,他仍然告诉我它很脆弱。那么通常如何将此库与 Eval 或 Data Binding 一起使用?