当前位置:  开发笔记 > 编程语言 > 正文

使用HTML编码字符进行ASP.NET请求验证

如何解决《使用HTML编码字符进行ASP.NET请求验证》经验,为你挑选了1个好方法。

我有一个表单中的文本框,需要接受带有HTML标记的输入.

使用HTML标签提交输入会使应用程序抛出HttpRequestValidationException,除非我们使用HttpUtility.HtmlEncode.容易到目前为止.

但是,输入也可能包含符号,例如"度"符号(°).当这些也是HTML编码时,在这个例子中它们变成数字转义码°.这些代码也会导致HttpRequestValidationException抛出,但问题是为什么?

我不明白为什么数字转义码被认为是潜在的危险,特别是°作为输入工作就好了.

我似乎被卡住了,因为由于标签而导致输入失败,并且由于数字转义而导致输入的HTML编码失败.到目前为止我的解决方案是HTML编码,然后正则表达式用它们的HTML解码形式替换转义序列,但我不确定这是否是一个安全的解决方案,因为我认为转义序列被视为危险的原因.



1> VinayC..:

ASP.NET认为html char escapes(&#xxx)是危险的,因为它认为角度括号危险即XSS.使用上面的转义,您可以包含任何字符(例如,有角度的括号).以下是1.1和2.0中请求验证的概要.

在您的案件等合法案件中,您可以选择以下任何一种情况

    根据您的描述选择您自己的处理方式

    在页面级别禁用请求验证(<%@ Page validateRequest ="false")

    在.NET 4中,使用RequestValidator类替换您自己的请求验证.

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有