Java转义HTML

Bal*_*eth 37 html java escaping

目前我org.apache.commons.lang.StringEscapeUtils escapeHtml()用来逃避我的字符串中不需要的HTML标签,但后来我意识到它也带有重音符号&something;,,这是我不想要的.

你是否知道任何逃避HTML标签的解决方案,但留下我的特别(好吧,对某些人来说,这里是正常的;])这些字母是什么?

提前致谢!

巴拉兹

pin*_*33n 30

StringUtils.replaceEach(str, new String[]{"&", "\"", "<", ">"}, new String[]{"&amp;", "&quot;", "&lt;", "&gt;"})
Run Code Online (Sandbox Code Playgroud)

  • [OWASP](http://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet)也推荐`'`和`/`. (12认同)
  • 怎么样的?©½æ÷§`和其余的shebang在http://arnspublishing.com/QuickRef/ISO8859.html找到了?=)取而代之的是等待发生的灾难! (3认同)
  • @MatthewDoucette它是`org.apache.commons.lang.StringUtils`:http://commons.apache.org/lang/api-2.5/org/apache/commons/lang/StringUtils.html (2认同)

gon*_*lva 21

如果是Android版,请TextUtils.htmlEncode(String)改用.


Nic*_*sco 9

这看起来对我很好:

组织/阿帕奇/公/ lang3/StringEscapeUtils.html#将escapeXml(java.lang.String中)

通过询问XML,您将获得XHTML,这是一个很好的HTML.


小智 6

我知道添加评论为时已晚,但也许以下代码会有所帮助:

public static String escapeHtml(String string) {
    StringBuilder escapedTxt = new StringBuilder();
    for (int i = 0; i < string.length(); i++) {
        char tmp = string.charAt(i);
        switch (tmp) {
        case '<':
            escapedTxt.append("&lt;");
            break;
        case '>':
            escapedTxt.append("&gt;");
            break;
        case '&':
            escapedTxt.append("&amp;");
            break;
        case '"':
            escapedTxt.append("&quot;");
            break;
        case '\'':
            escapedTxt.append("&#x27;");
            break;
        case '/':
            escapedTxt.append("&#x2F;");
            break;
        default:
            escapedTxt.append(tmp);
        }
    }
    return escapedTxt.toString();
}
Run Code Online (Sandbox Code Playgroud)

享受!


qui*_*int 5

这是一个替换OWASP推荐的六个重要字符的版本.这适用于HTML内容元素<textarea>...</textarea>,但不适用于HTML属性,<input value="...">因为后者通常不加引号.

StringUtils.replaceEach(text,
        new String[]{"&", "<", ">", "\"", "'", "/"},
        new String[]{"&amp;", "&lt;", "&gt;", "&quot;", "&#x27;", "&#x2F;"});
Run Code Online (Sandbox Code Playgroud)