我想让用户只在一个文本框中输入 HTML。我了解可以ValidateRequest
将 page 指令更改为 false 以取消保护。
我猜这允许在页面上的任何文本框中输入 HTML。无论如何ValidateRequest="false"
只适用于单个控件吗?
谢谢你的帮助。
我想让用户只在一个文本框中输入 HTML。我了解可以ValidateRequest
将 page 指令更改为 false 以取消保护。
我猜这允许在页面上的任何文本框中输入 HTML。无论如何ValidateRequest="false"
只适用于单个控件吗?
谢谢你的帮助。
不,请求验证是针对整个请求的,或者什么都不是。
验证被添加为默认设置,以保护对输入验证一无所知的开发人员。如果您知道所有输入都必须被视为不安全,并且知道如何正确编码您从输入中使用的数据以保护自己免受 SQL 注入和跨站点脚本等攻击,您可以关闭验证。
更新:在 .NET 4.5 中添加了该ValidateRequestMode
属性,它允许从页面全局验证中排除控件。
.NET 4.5 中的新功能:您可以ValidateRequestMode="Disabled"
在控件上进行设置。请参阅MSDN。
尝试关闭 ValidateRequest 并使用此方法从每个单独的控件/参数中删除标记:
public static string RemoveMarkUp(this string s) {
return Regex.Replace(s, @"<[a-zA-Z\/][^>]*>", string.Empty);
}