我愿意使用“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服务器上运行。
谢谢你,并致以最诚挚的问候。
答案 0 :(得分:3)
对于输入验证,您将使用org.owasp.esapi.reference.DefaultValidator
.
如果您想在validation.properties
中定义自己的验证规则,可以在this question的答案中演示这样做的技巧。
对于输出转义,这实际上非常容易。优选地,当将数据插入将要发送到表示层的对象时,您将需要使用String output = ESAPI.encoder().escapeForHTML(String s);
方法。
完整的方法列表在org.owasp.esapi.Encoder
中定义。