我有一个包含许多文本字段且所有文本字段都已经过验证的表单,我还添加了NiceEdit插件,以便能够在文本区域中设置文本格式,但它会引发错误,如:
从客户端检测到潜在危险的Request.Form值
现在我可以简单地转到页面顶部并在页面指令中添加ValidateRequest="false"
,但这将使我无法进行所有我需要的验证,因此如何为我的文本区域切换验证???
VB.net,ASP.net 3.5,VWD 2008 Express ...
由于
答案 0 :(得分:4)
ValidateRequest
设置会针对预定义的一组危险值关闭/启用内置验证。 HTML字符串被认为是危险的,因为它们可能用于提交和启动XSS / HTML注入攻击。
您的问题似乎暗示您误将此属性视为对您网页的验证控件产生影响。这不准确。
由于您可能希望允许用户通过“NiceEdit”插件提交HTML,我可以考虑两种方法:
关闭页面的ValidateRequest
并手动处理验证。在提交表单之前检查危险值。
为页面保持ValidateRequest
,但在客户端上,就在提交页面之前,使用Javascript对相关文本区域中的HTML值进行编码(如有必要,请对所有页面执行正则表达式替换) “<”和“>”字符)然后只允许提交。
后一种方法在Mads Kristensen's博客和here上展示。