asp.net – 如果启用ASP .Net请求验证,是否需要HtmlEncode Textb
如果某个站点启用了ASP.NET请求验证,您是否还需要
HtmlEncode和
HtmlDecode字符串信息以及简单的表单(例如ASP文本框)?
解决方法
ASP.NET请求验证是一个黑客,试图解决愚蠢的作者的破坏的程序.不要写破坏的程序. 您写入HTML页面的任何文本字符串必须是HTML编码的;这是一个正确的问题,而不仅仅是安全性(这是正确性的一个子集).即使请求验证可能会神奇地删除任何可能的XSS攻击(并不是这样的情况),否则HtmlEncode文本输出仍然会导致生成格式错误的输出,破坏您的数据.说我正在做一个论坛,谈论一些变量a,b和c,并想说: a<b b>c b>a 如果这被回覆到没有编码的HTML源代码,我会得到:
也许网页的其余部分也是大胆的.哎呦! 请求验证是假的,不应该依赖.默认情况下,“推荐用于所有生产环境”是令人难过的,这使我非常怀疑ASP.NET团队的健全性. 如果你正确地编写了你的??程序,你不需要它,它只会让你的方式. (例如,如果SO使用它,我将无法使这篇文章提到< script>标签.)如果您没有正确地编写程序,请求验证不会修复您的安全漏洞这只会使它们更加模糊不清.
你通常不会在网络应用程序中使用HtmlDecode任何东西.编码将内容推送到HTML中,但是当内容从提交的表单中恢复时,它是纯文本,而不是HTML编码.
文本框应该很好设置它们的.Text确实做任何必要的编码,使您在文本框中显示的确切字符串.但.一些看起来像是HTML编码的东西实际上并不会.例如: myTextBox.Text= "a<b b>c"; // Fine! myLabel.Text= "a<b b>c"; // Broken! 噢亲爱的.文字并不总是意味着文字. Sometimes,it actually means HTML.谢谢微软的方式,泥泞一个话题的水域太多人已经很难理解了. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 如何在ActionFilterAttribute ASP MVC 5中为
- ASP.NET MVC 3 – 如何以有效的方式限制区域?
- asp.net-mvc – 返回空ActionResult
- asp.net-mvc-4 – 如何配置MVC的样式捆绑顺序?
- asp.net-mvc – ASP.NET MVC – 单元测试过度杀毒? (TDD)
- asp.net-core – IApplicationBuilder不包含UseStaticFiles
- asp.net – 如何测试开发机器上的子域? abc.localhost
- ASP.NET 4.0中HTML编码的<%:%>括号
- asp.net-mvc-4 – 简单会员:用户的上次登录日期
- asp.net – 使用Web.Config转换插入多个项目
- asp.net-mvc – delphi web服务从.net mvc应用程
- 优化 .net core 应用的 dockerfile
- 实体框架 – 我们如何使用Breeze的本地时区生存
- asp.net-mvc – 资源解释为Document但使用MIME类
- asp.net – 如何隐藏用户控件并删除它的空间
- asp.net – 错误:必须声明标量变量“@data”
- China .NET Conf 2019-.NET技术架构下的混沌工程
- asp.net-mvc – 如何修复System.Net.Sockets.Soc
- 验证 – ASP.NET Web API是否支持IValidatableOb
- asp.net-mvc – ASP.NET MVC UpdateModel空属性