2010-10-31 58 views
1

消耗我的web服務的應用程序發送無效的soap請求,我的服務無法處理此請求。是否有可能在apache tomcat中操縱原始http-stream?

應用程序發送一個錯誤的標籤(拼寫錯誤),但他們不能改變這種行爲。

所以我的問題:

有一個過濾器或聽者獲得原始HTTP流,改變一些東西,把它放回鏈的可能性。

謝謝亞歷克斯

回答

0

我假設你想改變HTTP請求的傳入正文。沒有簡單的方法來做到這一點。我不知道任何可以讓你「正式」這樣做的Servlet API。

「非正式」你可以在org.apache.catalina.connector.Request上做一些反思魔術。如果你看看這個對象,你會看到返回實際主體(getReader()getInputStream())的兩種方法都是在輸入緩衝區的頂部建立流,org.apache.catalina.connector.InputBuffer的實例。您將不得不操作該緩衝區,以便返回受污染的數據。

不用說,這是一個非常易變和危險的黑客攻擊。沒有保證,這將在下一個Tomcat版本(即使是較小的版本)上工作,並且幾乎不可維護。

+0

我用PHP編寫了一個簡單的代理,那裏獲取洞http數據流非常簡單,操作它並將其放回鏈中。謝謝 – Alex 2010-11-16 07:28:16

相關問題