【问题标题】:how to ignore ESAPI exception "org.owasp.esapi.errors.IntrusionException: Input validation failure"?如何忽略 ESAPI 异常“org.owasp.esapi.errors.IntrusionException:输入验证失败”?
【发布时间】:2019-03-15 08:06:26
【问题描述】:

我的项目(基于 JSP、Struts、hibernate 构建)从用户那里获取输入并将其保存在数据库中。为了使我的应用程序安全,我使用了 ESAPI jar。

我遇到了异常

org.owasp.esapi.errors.IntrusionException:输入验证失败

在方法ESAPI.encoder().canonicalize();

当我们从 Skype、MS Word 等复制和粘贴数据时,通常会出现此异常。

当我从 Skype Messenger 复制粘贴字符串时,它会自动添加带有 div、meta、p 等(所有 HTML 标签)的额外样式数据,这会导致添加许多特殊字符,这可能会导致上述异常。

但是当我从记事本复制字符串时,它并没有给出异常。

如何忽略此异常以便添加数据? ESAPI.properties 或validation.properties 中有什么需要修改的吗?你有什么看法?

【问题讨论】:

    标签: java owasp esapi


    【解决方案1】:

    我认为,当您从(例如)MS Word 中粘贴某些内容而不是从记事本之类的简单内容中粘贴内容时,您的奇怪问题与额外的编码有关。当您在 Word 中时,它会获取一些额外的元数据,并且“MS Word”中的默认“粘贴”实际上是“特殊粘贴”。这样做是为了让您可以将文本从一个 Office 应用程序复制到另一个(例如,Word 到 Outlook)并“保留格式”。我认为你得到的所有这些额外的元数据让你感到困惑,因为它可能看起来像 ESAPI 一样是多编码的,或者它认为使用了混合编码。

    也就是说,如果你想进行验证,你真的应该使用 Validator.isValidInput() 或 Validator.getValidInput() 方法之一。默认情况下调用 Encoder.canonicalize() (除非您使用来自“开发”分支的最新 ESAPI,您实际上可以在其中禁用规范化 - 一个最近的错误修复)。

    -凯文

    【讨论】:

      猜你喜欢
      • 2012-06-17
      • 2014-09-07
      • 2018-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-10
      • 2018-06-08
      • 2021-12-23
      相关资源
      最近更新 更多