2010-09-04 29 views
2

我目前正在閱讀Web服務。有一個SOAP教程http://www.w3schools.com/soap/soap_intro.asp。下面這一段是從該網頁:爲什麼RPC over HTTP是一個安全問題?

「今天的應用程序進行通信使用像DCOM和CORBA對象之間的遠程過程調用(RPC),但是HTTP不是爲此設計的RPC代表了兼容性和安全性問題;防火牆和代理服務器通常會阻止這種流量。「

我不明白這一點。請有人向我解釋一下。 Escpecially我想知道,爲什麼RPC是一個安全問題(通過HTTP租賃)。知道爲什麼它是一個兼容性問題也會很好。

回答

2

關於兼容性,問題在於,例如,將某些使用DCOM對話的東西用於使用CORBA的東西並不明顯。 SOAP的目標之一是提供互操作性,以協調這種通信的實施方式。 (根據您使用的工具,與SOAP的互操作性可能仍存在一些小故障。)

關於安全性,很長一段時間,圍繞使用端口號來區分應用程序的策略:如果要阻止某個服務(比如說NNTP),你在防火牆級別阻塞了它的端口。它可以輕鬆控制可以使用哪些應用程序。 HTTP over SOAP所做的是推動上述層面的問題。您不能再區分TCP級別的端口號使用哪種應用程序或服務,而是必須能夠分析HTTP消息的內容和SOAP消息以授權某些應用程序或服務。

SOAP大多采用HTTP POST來發送它的消息:這是使用HTTP作爲傳輸協議,而HTTP是一個轉印協議,因此不使用HTTP根據到網絡架構(SOAP 2可能試圖改善這種狀況)。因爲幾乎每個人都需要現在訪問網絡,所以幾乎可以保證HTTP端口不會被阻塞。如果在此之上沒有添加安全層,那麼這將有效地使用循環漏洞。 這就是說,就安全性而言,使用HTTP進行SOAP通信具有優勢,因爲例如在現有的HTTP認證系統方面存在更多的協調。 SOAP/WS- *堆棧試圖做的是協調獨立於平臺的「RPC」通信。這不是「SOAP是安全的」訴訟案件。 「DCOM/CORBA不是」,你仍然必須使用它的安全組件,例如WS-Security,並且您可能已經能夠與其他系統達到合理的安全級別。

3

他們提出的觀點是「傳統RPC」有時會使用不尋常的低級網絡協議,這些協議通常會被企業防火牆阻止。由於SOAP使用HTTP,因此流量與普通網頁瀏覽「無法區分」,因此不會被這些防火牆捕獲。 對安全性問題不太確定,我認爲它們可能意味着HTTP可以輕鬆地通過HTTPS進行保護,而專有的RPC協議通常不會。當然,這是依賴於協議的,並不是所有的RPC協議都是不安全的,其中許多協議可以通過HTTPS隧道傳輸。

相關問題