转义字符以避免 Java 中的 XSS
Escaping characters to avoid XSS in Java
我需要转义字符以避免 XSS。我正在使用 org.apache.commons.lang.StringEscapeUtils.escapeHtml(String str),这有助于以下方式:
原始输入
" onmouseover=alert() src="
转义后HTML变为
" onmouseover=alert() src="
但是,有些情况下反射输入被困在单引号中,例如:
test'];}alert();if(true){//
在那种特殊情况下,转义 HTML 没有任何效果。但是,org.apache.commons.lang.StringEscapeUtils 也有一个名为 escapeJavascript(String str) 的方法,它将输入转换为:
test\'];}alert();if(true){\/\/
这里的问题是,你会通过先转义 HTML 然后转义 Javascript 来清理你的输入吗?另一种是手动用 \' 替换单引号字符。
任何帮助将不胜感激!
正如@gabor-lengyel 提到的,我应该能够使用 html 编码器转义单引号。
我遇到的问题是我使用的是 org.apache.commons.lang.stringescapeutils.escapeHtml
,它无法使用相应的 HTML 实体转义单引号。我现在正在使用 org.springframework.web.util.HtmlUtils.htmlEscape
,它能够同时处理双引号和单引号。
再次感谢@gabor-lengyel 的帮助!
我需要转义字符以避免 XSS。我正在使用 org.apache.commons.lang.StringEscapeUtils.escapeHtml(String str),这有助于以下方式:
原始输入
" onmouseover=alert() src="
转义后HTML变为
" onmouseover=alert() src="
但是,有些情况下反射输入被困在单引号中,例如:
test'];}alert();if(true){//
在那种特殊情况下,转义 HTML 没有任何效果。但是,org.apache.commons.lang.StringEscapeUtils 也有一个名为 escapeJavascript(String str) 的方法,它将输入转换为:
test\'];}alert();if(true){\/\/
这里的问题是,你会通过先转义 HTML 然后转义 Javascript 来清理你的输入吗?另一种是手动用 \' 替换单引号字符。
任何帮助将不胜感激!
正如@gabor-lengyel 提到的,我应该能够使用 html 编码器转义单引号。
我遇到的问题是我使用的是 org.apache.commons.lang.stringescapeutils.escapeHtml
,它无法使用相应的 HTML 实体转义单引号。我现在正在使用 org.springframework.web.util.HtmlUtils.htmlEscape
,它能够同时处理双引号和单引号。
再次感谢@gabor-lengyel 的帮助!