我正在开发一个简单的ASP.NET应用程序来证明AntiXss库的使用。该库非常强大,除了在aspx页面中使用Eval()之外,它与我一起工作正常。例如,如果我有如下标签控件:
<asp:Label runat="server" ID="CommentsLabel" Text='<%# Eval("Name") %>' />
我如何能够使用AntiXss?
我跟着this example mentioned HERE,我通过执行以下操作将库添加到标签控件中:
<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结合使用?