我愿意使用“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 服务器上运行。
谢谢你和最好的问候。
对于输入验证,您将使用org.owasp.esapi.reference.DefaultValidator
.
如果要在validation.properties
中定义自己的验证规则,则在this question的答案中演示了执行此操作的技术。
对于输出转义,这实际上相当容易。最好是在将数据插入到将发送到表示层的对象中时,您需要使用String output = ESAPI.encoder().escapeForHTML(String s);
方法。
方法的完整列表在org.owasp.esapi.Encoder
中定义。
这将清理来自 HTML 的输入,并确保保留引号。
final StringBuilder sb = new StringBuilder();
HtmlSanitizer.Policy policy = myPolicyBuilder.build(new HtmlStreamEventReceiver() {
public void openDoent() {}
public void closeDoent() {}
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);
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(61条)