加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – Bind()还是Eval()自动使用HtmlEncode来防范XSS?

发布时间:2020-12-15 22:47:16 所属栏目:asp.Net 来源:网络整理
导读:原谅我,如果这是一个愚蠢的问题.我未能明确地找到答案. 我很少在我的aspx页面中使用Bind()或Eval(),而是使用以下语法:(假设这是在Repeater控件中的ItemTemplate中) asp:Label id="lblFirstName" runat="server" Text='%# Microsoft.Security.Application.An
原谅我,如果这是一个愚蠢的问题.我未能明确地找到答案.

我很少在我的aspx页面中使用Bind()或Eval(),而是使用以下语法:(假设这是在Repeater控件中的ItemTemplate中)

<asp:Label id="lblFirstName" runat="server" Text='<%# Microsoft.Security.Application.AntiXss.HtmlEncode(DataBinder.Eval(Container.DataItem,"FirstName").ToString()) %>

我很久以前就开始这样做,从来没有质疑过,但现在我觉得这可能是过度的.现在我正在使用一种使用这种语法的CMS:

<asp:Label id="lblFirstName" runat="server" Text='<%# Bind("FirstName") %>

所以我想知道,基本上,如果我使用Bind()或Eval()运行时自动HtmlEncode的输出?我一直在做不必要的编码吗?

解决方法

Bind()和Eval()不执行任何操作,以防止这种类型的事物并且不编码. <%#%>样式代码块.

但是,如果使用ASP.NET 4和更高版本,则可以使用<%:%>处理此响应写入类型情况的块和<%#:%>用于数据绑定情况.

Scott Guthrie对此有很大的作用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读