gpt4 book ai didi

asp.net - Bind() 或 Eval() 是否会自动进行 HtmlEncode 以防止 XSS?

转载 作者:行者123 更新时间:2023-12-03 21:55:47 25 4
gpt4 key购买 nike

如果这是一个愚蠢的问题,请原谅我。我一直无法找到明确说明的答案。

我很少在我的 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 及更高版本,则可以使用 <%: %>用于处理响应写入类型情况和 <%#: %> 的 block 对于数据绑定(bind)情况。

Scott Guthrie 有一个很棒的 post对这个。

关于asp.net - Bind() 或 Eval() 是否会自动进行 HtmlEncode 以防止 XSS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15641601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com