选择性验证

时间:2009-04-03 12:01:50

标签: asp.net vb.net validation textarea

我有一个包含许多文本字段且所有文本字段都已经过验证的表单,我还添加了NiceEdit插件,以便能够在文本区域中设置文本格式,但它会引发错误,如:

从客户端检测到潜在危险的Request.Form值

现在我可以简单地转到页面顶部并在页面指令中添加ValidateRequest="false",但这将使我无法进行所有我需要的验证,因此如何为我的文本区域切换验证???

VB.net,ASP.net 3.5,VWD 2008 Express ...

由于

1 个答案:

答案 0 :(得分:4)

ValidateRequest设置会针对预定义的一组危险值关闭/启用内置验证。 HTML字符串被认为是危险的,因为它们可能用于提交和启动XSS / HTML注入攻击。

您的问题似乎暗示您误将此属性视为对您网页的验证控件产生影响。这不准确。

由于您可能希望允许用户通过“NiceEdit”插件提交HTML,我可以考虑两种方法:

  1. 关闭页面的ValidateRequest并手动处理验证。在提交表单之前检查危险值。

  2. 为页面保持ValidateRequest,但在客户端上,就在提交页面之前,使用Javascript对相关文本区域中的HTML值进行编码(如有必要,请对所有页面执行正则表达式替换) “<”和“>”字符)然后只允许提交。

  3. 后一种方法在Mads Kristensen's博客和here上展示。