java中的Xss清理

java中的Xss清理,java,encoding,xss,Java,Encoding,Xss,我有一个代码段来清理XSS攻击的字符串符号“”。在下面的代码片段中,您是否看到有人可以破解这两个符号的代码。我知道XSS还有很多需要清理的地方,还有标准库。但是,我们是否希望下面的代码片段出现任何故障/破损?从编码/字符集的角度思考。请看一看并提出建议 我们也可以使用replace,但这是已经编写好的代码,我必须打破它 String next=""; //this will be a html get request param final StringBuffer sb = new Stri

我有一个代码段来清理XSS攻击的字符串符号“”。在下面的代码片段中,您是否看到有人可以破解这两个符号的代码。我知道XSS还有很多需要清理的地方,还有标准库。但是,我们是否希望下面的代码片段出现任何故障/破损?从编码/字符集的角度思考。请看一看并提出建议

我们也可以使用replace,但这是已经编写好的代码,我必须打破它

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("&lt;");
  } else if (ch == '>') {
    sb.append("&gt;");
  } else {
    sb.append(ch);
  }
}
String next=”“//这将是一个html get请求参数
最终StringBuffer sb=新StringBuffer();
for(int i=0;i
一种可能的攻击是:

&#0000060

这个标志也是一个一个可能的攻击是:

&#0000060

这个符号也是一个,它取决于上下文。但我确信这段代码是不安全的。这种替换可能会破坏多字节字符(即不适合UTF-16的字符)。这取决于上下文。但我确信这段代码是不安全的。这种替换可能会破坏多字节字符(即不适合UTF-16的字符);就像?我仍然宁愿使用esapi或类似的东西,也不愿提出自己的实现。“为什么要重新发明轮子,其他人已经这样做了,而且可能更好。”大卫达。不明白。Iv你做了一个字符比较<!=<@Scorpio是的,这就是为什么我添加了esapi和commons-lang的链接。不要自己写。为此使用库。@davida<被视为html字符,因此不会被解析为html字符;就像?我仍然宁愿使用esapi或类似的东西,也不愿提出自己的实现。“为什么要重新发明轮子,其他人已经这样做了,而且可能更好。”大卫达。不明白。Iv你做了一个字符比较<!=<@Scorpio是的,这就是为什么我添加了esapi和commons-lang的链接。不要自己写。为此使用库。@davida<被视为html字符,因此不会被解析为html字符。