Java 通过DOMParcing进行哪种编码(反配偶)

Java 通过DOMParcing进行哪种编码(反配偶),java,encoding,character-encoding,antisamy,Java,Encoding,Character Encoding,Antisamy,我正在为一个新项目使用反艾米,以防止xss漏洞。 在应用程序中,用户可以通过简单的(ansi编码的)excel文件上载内容。 应该可以插入一些html,但不能插入javascript等等 当我使用antisamy扫描输入时,会出现以下错误: 标记包含我们无法处理的属性。href属性的值为“https:;/;/;bla.;bla.;com/;bla/;…”。出于安全原因,无法接受此值。为了继续处理输入,我们选择过滤a标记 我在实体中添加了一些空格,您可以看

我正在为一个新项目使用反艾米,以防止xss漏洞。 在应用程序中,用户可以通过简单的(ansi编码的)excel文件上载内容。 应该可以插入一些html,但不能插入javascript等等

当我使用antisamy扫描输入时,会出现以下错误: 标记包含我们无法处理的属性。href属性的值为“https:;/;/;bla.;bla.;com/;bla/;…”。出于安全原因,无法接受此值。为了继续处理输入,我们选择过滤a标记

我在实体中添加了一些空格,您可以看到

(但应该是…)

当我调试代码时,“受污染的Html输入”及其href属性似乎是正确的(因此excel文件的编码没有问题)

反艾米策略文件如下所示:

...
<regexp name="onsiteURL" value="([\w\\/\.\?=&amp;;#-~]+|#(\w)+)"/>
<regexp name="offsiteURL" value="(\s)*((ht|f)tp(s?)://|mailto:)[A-Za-z0-9]+[~a-zA-Z0-9-_\.@#$%&amp;;:,\?=/\+!]*(\s)*"/>
...
<attribute name="href">
  <regexp-list>
    <regexp name="onsiteURL"/>
    <regexp name="offsiteURL"/>
  </regexp-list>
  <literal-list>
    <literal value="javascript:void(0)"/>
  </literal-list>
</attribute>
...
。。。
...

因此,这似乎是一个编码问题,符号AND将不再是符号AND。 你怎么知道我应该使用哪种编码


编辑:字符为E2 8C A9->⟨

我做了一些变通,用“&;”替换了“&”。
我不知道为什么,但它起作用了。这是唯一一个不能正常工作的字符。

我做了一些变通,用“&;”替换了“&”。 我不知道为什么,但它起作用了。这是唯一一个不能正常工作的角色