如何消毒投入

时间:2014-06-22 17:21:47

标签: java input sanitize owasp esapi

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

我曾经这样使用org.apache.commons.lang.StringEscapeUtils

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

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

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

你能给出一个例子,其中一个或几个ESAPI“过滤器”(转义?,编码?...)将应用于字符串以进行消毒吗?

后端RDBMS是PostgreSQL。

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

谢谢你,并致以最诚挚的问候。

1 个答案:

答案 0 :(得分:3)

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

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

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

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