【问题标题】:Client validation that acts the same as .NET page validator/XSS prevention?与.NET 页面验证器/XSS 预防相同的客户端验证?
【发布时间】:2011-02-09 17:45:41
【问题描述】:

我有一个免费文本表单供人们提交反馈/支持请求。有时人们会在支持票证或错误日志中过去,其中包含触发 .NET 页面验证器作为 XSS 尝试的内容。这会将用户带到错误页面,就好像网站被他们的输入阻塞了一样。

最好让页面在实际提交之前按下保存按钮时进行一些客户端验证。

是否有一个正则表达式或某种方法可以在客户端执行相同的基本检查,或者我只需要编写一个禁止某些字符的正则表达式,如<>

【问题讨论】:

    标签: .net asp.net regex validation


    【解决方案1】:

    .NET 4.0 的内部 CrossSiteScriptingValidation 使用 IsDangerousString 方法来匹配这些条件:

    如果

    这个 javascript 中的正则表达式应该可以工作:

    /^(?!(.|\n)*<[a-z!\/?])(?!(.|\n)*&#)(.|\n)*$/i
    

    【讨论】:

    • IsDangerousString = function (str) { return (/^(?!(.|\n)*&lt;[a-z!\/?])(?!(.|\n)*&amp;#)(.|\n)*$/i.test(str)); }; IsDangerousString("&lt;"); 如果您在 chrome 中尝试上述 JS 代码,它将返回 true 但在 .Net 中用于 CrossSiteScriptingValidation 是允许的(不是危险字符串)。
    猜你喜欢
    • 2020-09-08
    • 2011-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-23
    • 1970-01-01
    • 2017-01-26
    相关资源
    最近更新 更多