【问题标题】:How to restrict jax-ws parser to not parse doctype to prevent xml entity injection如何限制 jax-ws 解析器不解析 doctype 以防止 xml 实体注入
【发布时间】:2012-07-13 04:49:22
【问题描述】:

我正在使用一个客户端,它正在向服务器发送一个 xml soaprequest,其中包括一个 doctype decleration as

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE test [
<!ENTITY xxe SYSTEM "///etc/SuSE-brand">
]>

在我发送的其中一个实体中 &xxe;作为&lt;comments&gt;&amp;xxe;&lt;/comments&gt; 的输入。这是外部实体注入。在服务器端,请求第一次到达时已被解析,并且注释字段带有位置 /etc/SuSe-brand 的文本。

我想停止这个 doctype 解析,我必须检查是否有一些 doctype,然后应该停止解析。或者任何人都可以建议应该使用哪个版本的 JAX-WS 来检查 xml 实体注入?

【问题讨论】:

  • 嗨 kommaradHomer,感谢您的回复。但我无法阻止外部实体注入。我无法通过 Saxparser 阻止外部实体注入,因为 xml 请求第一次到达服务器时它没有 doctype在它的标题中,它只是带来了 ///etc/SuSE-brand 的值,所以我认为两个不同的请求来自soapui。所以请告诉任何版本的 jax-ws 是否可以工作。我已经尝试了 2.1.7。但它没有。

标签: java jakarta-ee


【解决方案1】:

我已经尝试了很多方法,例如将 jaxws 的版本从 2.1.3 更改为 2.1.7,但它并没有阻止 xml 实体注入。最后我放置了一个 http 过滤器,我可以从 soapui 获得确切的 soaprequest。在那里我设法缓和了我的更改,然后进一步发送更改后的soaprequest。

【讨论】:

    猜你喜欢
    • 2017-09-09
    • 1970-01-01
    • 2017-04-04
    • 2015-08-16
    • 1970-01-01
    • 2011-11-18
    • 2013-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多