2012-07-13 32 views
1

我使用的客戶機,其發送XML soaprequest到包括一個DOCTYPE decleration作爲如何限制JAX-WS解析器不解析文檔類型,以防止XML實體注射

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

在的一個服務器我發送的實體&xxe;作爲輸入<comments>&xxe;</comments>。這是外部實體注入。在服務器端,第一次請求到達它已被解析,並且註釋字段攜帶位置/ etc/SuSe-brand的文本。

我想停止這個doctype解析,我必須檢查是否有一些文檔類型,然後解析應該停止。或者任何人都可以建議應該使用哪個版本的JAX-WS來檢查xml實體注入嗎?

+0

你有檢查http://stackoverflow.com/questions/8256536/jax-ws-request-validation-using-jaxb – kommradHomer 2012-07-13 10:09:44

+0

您好kommaradHomer,謝謝你的回覆。但我無法阻止外部實體注入。我無法阻止外部實體注入thx Saxparser,因爲第一次xml請求到達服務器時,它的頭文件中沒有文檔類型,它只是帶來/// etc/SuSE-brand的值,所以我認爲兩個不同的請求是從soapui.So請告訴是否有任何版本的jax-ws可以工作。我試過2.1.7.But沒有。 – user1522555 2012-07-23 07:58:45

回答

0

我已經嘗試了很多東西,將jaxws的版本從2.1.3更改爲2.1.7,但它並沒有阻止xml實體注入。最後我放了一個http過濾器,我可以從soapui中得到確切的soaprequest 。我設法調整了我的更改,然後再發送更改後的soaprequest。