ASP.NET中ValidateRequest的XSS触发器的完整列表
我理解为什么异常“”是一个潜在危险的请求。表单值发生及其有用原因。我想在我的页面上放置客户端验证程序,以检查输入是否包含<>on=或其他任何可能触发此异常的内容。问题是,我不知道触发此异常的所有字符或字符串。是否在某个位置有触发器列表?我似乎找不到,只有问题/答案r对异常本身以及如何处理异常感到高兴 此外,如果请求来自外部来源,而不是我的表单,我如何判断和处理它?Asp.NET是否会自动执行此操作?隐藏的字段是否有效,或者黑客是否可以绕过它 非常感谢您提供的信息(包括链接) 更新: 对于任何感兴趣的人,我提出了一个正则表达式,它将匹配具有这些字符的任何字符串ASP.NET中ValidateRequest的XSS触发器的完整列表,asp.net,security,validation,exception,request,Asp.net,Security,Validation,Exception,Request,我理解为什么异常“”是一个潜在危险的请求。表单值发生及其有用原因。我想在我的页面上放置客户端验证程序,以检查输入是否包含on=或其他任何可能触发此异常的内容。问题是,我不知道触发此异常的所有字符或字符串。是否在某个位置有触发器列表?我似乎找不到,只有问题/答案r对异常本身以及如何处理异常感到高兴 此外,如果请求来自外部来源,而不是我的表单,我如何判断和处理它?Asp.NET是否会自动执行此操作?隐藏的字段是否有效,或者黑客是否可以绕过它 非常感谢您提供的信息(包括链接) 更新: 对于任何感兴趣的
(^((?=.*&#).*)$)|(^((?=.*<).*)$)|(^((?=.*>).*)$)
(^((?=.*).$)|(^((?=.*))$)
但是,当您提交表单时,即使是在单独的验证组中而不是单击按钮的字段也会被传递到服务器,如果这些字段中存在无效文本,则会出现异常。因此,我决定使用Ajax FilteredTextBoxExtender从文本框中阻止这些字符。另一种选择是使用JavaScript键控功能在所有文本框上。但是,智能用户可以禁用这两个文本框的JavaScript,它们并不完全可靠。看起来这是本网站上类似问题的重复。有几个答案,其中人们通过代码反映了实际触发
在回答您的另一个问题时,如果无效输入来自您未明确验证的某个地方(例如另一个站点)的请求,它将点击代码服务器端的ValidateRequest,调用者将看到一个500错误或您的自定义错误页(如果启用)。这是假设您允许来自其他站点的请求服务器(阅读)。如果您不想允许来自其他服务器的请求,您可以检查请求的引用,并且只允许来自您自己站点的请求。即使您在客户端进行验证,也必须在服务器端进行验证。但我不确定您不想实现什么。谢谢。我在这里没有看到其他问题,但它会将其分解伊利:)