【问题标题】:Howto sanitize inputs如何清理输入
【发布时间】:2014-08-12 18:33:41
【问题描述】:

当用户在 Tomcat Webapp 中提交表单时,我愿意使用“OWASP ESAPI for Java”来清理用户输入。

我以前是这样使用org.apache.commons.lang.StringEscapeUtils的:

public static String myEscapeHtml(String s)
{
    String s_escapedString = null;       
    s_escapedString = StringEscapeUtils.escapeHtml(s);
    return s_escapedString;
}

我不知道这是否足以“合理地”保护 web 应用......

我想知道我应该编写哪些代码行来使用 OWASP ESAPI 来清理 Tomcat webapp 用户输入。

您能否举一个示例,其中一个或多个 ESAPI“过滤器”(转义?编码?...)将应用于字符串以对其进行清理?

后端RDBMS是PostgreSQL。

Tomcat 服务器可以在 Linux 服务器或 Windows 服务器上运行。

谢谢你和最好的问候。

【问题讨论】:

  • 我原来的标题是“如何使用 Owasp Esapi for Java 清理输入”。我认为值得在线程标题中精确说明我想使用的库和编程语言。但也许,根据你的标准,标签足以让线程被正确引用......我希望我能得到答案:)
  • 您对输入编码还是输出编码感兴趣?
  • 我不确定。我会说“输出编码”以避免在 HTML 代码中注入...

标签: java input sanitize owasp esapi


【解决方案1】:

对于输入验证,您将使用org.owasp.esapi.reference.DefaultValidator.

如果您想在validation.properties 中定义您自己的验证规则,那么可以在this question 的回答中演示这样做的技术。

对于输出转义,这实际上相当容易。最好在将数据插入将发送到表示层的对象中时,您需要使用String output = ESAPI.encoder().escapeForHTML(String s); 方法。

完整的方法列表在org.owasp.esapi.Encoder 中定义。

【讨论】:

    猜你喜欢
    • 2021-11-24
    • 1970-01-01
    • 1970-01-01
    • 2016-01-29
    • 1970-01-01
    • 2021-01-26
    • 2020-09-03
    • 2016-04-21
    • 2011-05-20
    相关资源
    最近更新 更多