我有一个代码片来清理字符串符号'<'和'>'用于XSS攻击。您是否在下面的代码段中看到有人可以破解这两个符号的代码。我知道XSS还有更多的消毒功能,还有标准库。但我们是否预计下面的代码段会出现任何故障/破损?从编码/字符集的角度思考也。请看一下并建议。
我们也可以使用替换,但这已经是代码编写,我必须打破它。
String next=""; //this will be a html get request param
final StringBuffer sb = new StringBuffer();
for (int i = 0; i < next.length(); ++i) {
final char ch = next.charAt(i);
if (ch == '<') {
sb.append("<");
} else if (ch == '>') {
sb.append(">");
} else {
sb.append(ch);
}
}
答案 0 :(得分:4)
一种可能的攻击方式是:
<
此标志也是&lt; ,需要更换。
事实上,我建议 NOT 自行编写替代品。使用ESAPE by OWASP或commons-lang from apache。