我需要转义字符以避免 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 来清理输入吗?另一种是手动用 \' 替换单引号字符。
任何帮助将不胜感激!