2014-01-16 68 views
1

在Java /春/阿帕奇CXF應用程序綁定,我有這樣定義的SOAP端點:如何禁用SOAP 1.1和Apache CXF

<cxf:endpoint 
    id="MessagingService" 
    address="/MessagingService" 
    bindingUri="http://www.w3.org/2003/05/soap/bindings/HTTP/" 
    implementor="mypackage.MessagingServiceImpl" /> 

屬性bindingUri="http://www.w3.org/2003/05/soap/bindings/HTTP/"使SOAP 1.2綁定。我測試過了,它可以工作。

有些人通過「擴展XML實體」認爲SOAP 1.1存在安全問題。我想保護我的Web服務免受這種攻擊。

不確定我的問題是否有意義,但:是否可以「禁用」SOAP 1.1綁定?

注意:從我的角度來看,SOAP 1.1和SOAP 1.2請求之間的區別是SOAP 1.2請求中使用的SOAP 1.1請求和http://www.w3.org/2003/05/soap-envelope中使用的XML名稱空間http://schemas.xmlsoap.org/soap/envelope/。 「禁用」 SOAP 1.1綁定可能意味着:在使用SOAP 1.1命名空間

在此先感謝

回答

1

您將需要添加將檢查肥皂版本,並拋出一個錯誤的攔截拒絕任何SOAP請求。

這就是說,我真的不明白你的關注。在CXF中,兩個版本的處理方式完全相同。 1.1中的任何安全問題也會在1.2中出現。因此,這樣做不會給您帶來任何好處。

我不完全相信你指的是關於「擴XML實體」是什麼,但很可能兩種情況之一:

1)XML DTD實體擴展 - 這是一個XML層次的東西那會影響1.1和1.2。但是,CXF會在解析器級別關閉此功能。

2)SOAP編碼結構循環等,它會是SOAP 1.1,但CXF不支持soap編碼,所以也不是問題。

+0

非常感謝Daniel的回答。與我討論「實體擴展」的人指的是你的觀點#1。正如我現在所瞭解的,它與解析器實現相比,更多地與SOAP版本相關。很高興知道CXF在解析器級別關閉此「功能」。然後我的WS就免受這種攻擊。 –