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

asp.net – 如果启用ASP .Net请求验证,是否需要HtmlEncode Textb

发布时间:2020-12-15 23:00:01 所属栏目:asp.Net 来源:网络整理
导读:如果某个站点启用了ASP.NET请求验证,您是否还需要 HtmlEncode和 HtmlDecode字符串信息以及简单的表单(例如ASP文本框)? 解决方法 If ASP.NET Request Validation is enabled for a site,do you still need to HtmlEncode ASP.NET请求验证是一个黑客,试图解决
如果某个站点启用了ASP.NET请求验证,您是否还需要 HtmlEncode和 HtmlDecode字符串信息以及简单的表单(例如ASP文本框)?

解决方法

If ASP.NET Request Validation is enabled for a site,do you still need to HtmlEncode

ASP.NET请求验证是一个黑客,试图解决愚蠢的作者的破坏的程序.不要写破坏的程序.

您写入HTML页面的任何文本字符串必须是HTML编码的;这是一个正确的问题,而不仅仅是安全性(这是正确性的一个子集).即使请求验证可能会神奇地删除任何可能的XSS攻击(并不是这样的情况),否则HtmlEncode文本输出仍然会导致生成格式错误的输出,破坏您的数据.说我正在做一个论坛,谈论一些变量a,b和c,并想说:

a<b b>c b>a

如果这被回覆到没有编码的HTML源代码,我会得到:

ac b>a

也许网页的其余部分也是大胆的.哎呦!

请求验证是假的,不应该依赖.默认情况下,“推荐用于所有生产环境”是令人难过的,这使我非常怀疑ASP.NET团队的健全性.

如果你正确地编写了你的??程序,你不需要它,它只会让你的方式. (例如,如果SO使用它,我将无法使这篇文章提到< script>标签.)如果您没有正确地编写程序,请求验证不会修复您的安全漏洞这只会使它们更加模糊不清.

and HtmlDecode string information

你通常不会在网络应用程序中使用HtmlDecode任何东西.编码将内容推送到HTML中,但是当内容从提交的表单中恢复时,它是纯文本,而不是HTML编码.

to and from simple forms (e.g. ASP Textboxes)?

文本框应该很好设置它们的.Text确实做任何必要的编码,使您在文本框中显示的确切字符串.但.一些看起来像是HTML编码的东西实际上并不会.例如:

myTextBox.Text= "a<b b>c"; // Fine!
myLabel.Text= "a<b b>c"; // Broken!

噢亲爱的.文字并不总是意味着文字. Sometimes,it actually means HTML.谢谢微软的方式,泥泞一个话题的水域太多人已经很难理解了.

(编辑:李大同)

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

    推荐文章
      热点阅读