我需要对验证控件进行一些检查,但我不确定ASP.NET认为哪种类型的文本是安全问题。有人可以给我一些尝试吗?我尝试了各种HTML标签,似乎接受它们很好。这是一个多行富文本框,用于将文本字段保存到数据库。保存的代码在没有指定ELSE的If Me.IsValid中,但在调用save函数后,它继续显示“已保存”消息并重定向页面。有些用户一直在失去工作,所以我认为问题是Me.IsValid是假的,因此保存函数被调用但什么也没做......无论如何我可以尝试使这个无效?注意我没有为此编写代码我只是对其进行故障排除。
答案 0 :(得分:2)
听起来好像你将Validator控件与ValidateRequest混淆,ValidateRequest是ASP.Net的内部机制,用于清理请求。
验证器验证完全取决于您的验证器。您使用的是RequiredFieldValidator吗?然后无效输入只是空白文本框。它是RegularExpressionValidator吗?然后,您需要输入与正则表达式不匹配的内容。的CustomValidator?然后你需要检查验证逻辑。
听起来我更担心的是,为了运行数据库查询而对输入进行了清理。首先要检查的是,在您的Page指令中,“ValidateRequest”未设置为“false”。如果是,那就解释了为什么允许HTML通过。
您还应该查看以下内容:
How to: Protect Against Script Exploits in a Web Application by Applying HTML Encoding to Strings
Validating User Input in ASP.NET Web Pages
然后,如果您想尝试数据库注入攻击,只需谷歌获取基本的SQL注入教程。
答案 1 :(得分:0)
javascript:alert('rrrrrooooaaaarrrrr');
是一个好的开始。
答案 2 :(得分:0)
尝试一些ASCII代码用于非破坏空格,回车等等。
由于您要保存到数据库,所以也可以尝试一些sql注入。