Cetc空气消毒机:如何消毒输入(java sanitize string)

我愿意使用“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 服务器上运行。

谢谢你和最好的问候。

8

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

如果要在validation.properties中定义自己的验证规则,则在this question的答案中演示了执行此操作的技术。

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

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

0
Source

这将清理来自 HTML 的输入,并确保保留引号。

final StringBuilder sb = new StringBuilder();
HtmlSanitizer.Policy policy = myPolicyBuilder.build(new HtmlStreamEventReceiver() {
    public void openDocument() {}
    public void closeDocument() {}
    public void openTag(String elementName, List<String> attribs) {
        if ("br".equals(elementName)) { sb.append('\n'); }
    }
    public void closeTag(String elementName) {}
    public void text(String text) { sb.append(text); }
});
HtmlSanitizer.sanitize(myHtml, policy);

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(818)
Pop in:Pythonpop()vspop(0)
上一篇
有没有清理c盘的软件:詹金斯:有没有办法清理詹金斯工作区
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(41条)