當(dāng)前位置:工程項目OA系統(tǒng) > 泛普各地 > 上海OA系統(tǒng) > 上海OA快博
關(guān)于安全的建議:對投入使用的XML Web Services禁用HTTP-GET和HTTP-POST協(xié)議
關(guān)于安全的建議:對投入使用的XML Web Services禁用HTTP-GET和HTTP-POST協(xié)議
Microsoft Corporation
2002 年 2 月
摘要:出于安全原因,Web service 操作人員可能需要對 XML Web services 禁用 HTTP-GET 和 HTTP-POST 消息處理協(xié)議。禁用這些協(xié)議有助于防止外部 Web 站點與您的 Intranet 上的 XML Web services 進(jìn)行惡意通信。
簡介
由于 HTTP-GET 和 HTTP-POST
消息處理協(xié)議的固有功能,在某些條件下,惡意 Web 頁可以使用它所定義的參數(shù)調(diào)用在防火墻后面運行的 XML Web service。這與某些基于
HTTP-GET 的惡意重定向問題類似。如果 XML Web service 支持使用 HTTP-GET 或 HTTP-POST 消息處理協(xié)議(對于使用
ASP.NET 創(chuàng)建的 XML Web services,將默認(rèn)啟用這些協(xié)議)進(jìn)行通信,就可能會發(fā)生此類安全問題。
盡管使用 HTTP-POST 創(chuàng)建惡意 Web 頁并不容易,但如果 XML Web services 沒有使用 HTTP-GET 和 HTTP-POST 消息處理協(xié)議,還是應(yīng)該在提供用 ASP.NET 創(chuàng)建的 XML Web services 的生產(chǎn)用計算機上禁用對這兩個協(xié)議的支持。
圖 1:常見的惡意通信事件
步驟 說明
1 位于防火墻后面的 HTTP 客戶端(如 Microsoft?
Internet Explorer)瀏覽一個包含鏈接的惡意 Web 頁。
2 Web 服務(wù)器向客戶端返回一個包含惡意鏈接的 Web
頁。當(dāng)用戶單擊該鏈接時,即對客戶端所在的 Intranet 上的 XML Web service 發(fā)出請求(用戶并不知道該請求)。
3 惡意
Web 頁將使用基于 Web 頁提供的參數(shù)和用戶憑據(jù)向 XML Web service 發(fā)出請求。
只有在下列條件下才會發(fā)生圖 1 所示的情況:
XML Web service 支持使用 HTTP-GET 或 HTTP-POST 消息處理協(xié)議進(jìn)行通信。(使用
HTTP-POST 的情況比較復(fù)雜,請參閱以下關(guān)于 HTTP-POST 的代碼示例。)
惡意 Web 頁的外部開發(fā)人員了解 XML Web
service 是否存在以及如何調(diào)用的詳細(xì)信息。
客戶端具有執(zhí)行內(nèi)部 XML Web service 的訪問權(quán)限。
雖然這種情況概括的是如何使用 HTTP-GET 惡意調(diào)用 XML Web service,但同樣適用于 HTTP-POST。要使用
HTTP-POST 以類似的方法執(zhí)行 XML Web service,Web 頁必須包含腳本,以便在用戶單擊某處導(dǎo)致消息發(fā)送回外部 Web
服務(wù)器時,將客戶端重定向到 XML Web service。
下面的代碼示例是一個包含惡意鏈接的 Web 頁,該鏈接指向在客戶端所在的 Intranet 上運行并使用 HTTP-GET 協(xié)議的 XML Web service。在此示例中,用戶必須單擊鏈接;不過,也有可能 Web 頁包含執(zhí)行重定向的腳本,因而不需要用戶的交互操作。
<html>
<body>
<a
HREF =
"http://AnIntranetServer/401K.asmx/ChangeWithholding?PreTax=
0@PostTax=0">快速致富!</a>
</body>
</html>
同樣,下面的代碼示例是一個包含惡意按鈕的 Web 頁,該按鈕能夠與在客戶端所在的 Intranet 上運行并使用 HTTP-POST 協(xié)議的 XML Web service 進(jìn)行通信。
<form method="POST"
action="http://AnIntranetServer/401K.asmx/ChangeWithholding">
<input type="hidden" name="pretax"
value="2.5">
<input type="hidden" name="posttax"
value="3.5">
<input type="submit" value="快速致富。單擊此處了解詳細(xì)消息。"
></p>
</form>
需要說明的是,這種情況對只能通過 HTTP 協(xié)議的 SOAP 與之通信的 XML Web service 不適用。SOAP 請求需要 SOAPAction HTTP 標(biāo)頭,而 Web 頁不具有在使用鏈接的重定向中包含該標(biāo)頭的功能。
對基于 ASP.NET 的 XML Web Services 禁用 HTTP-GET 和 HTTP-POST
協(xié)議
默認(rèn)情況下,客戶端可以使用以下三種協(xié)議與使用 ASP.NET 創(chuàng)建的 XML Web services
進(jìn)行通信:HTTP-GET、HTTP-POST 和通過 HTTP 的 SOAP。使用 Microsoft .NET 框架支持的配置系統(tǒng),您可以在單獨的 Web
應(yīng)用程序或整個計算機中修改 XML Web services 所支持的協(xié)議。
無論是在計算機上還是在單個 Web 應(yīng)用程序中禁用 HTTP-GET 和 HTTP-POST,都只需修改配置文件,該文件在 .NET 框架中只是一個簡單的文本文件。計算機的默認(rèn)配置是在 Machine.config 文件中進(jìn)行設(shè)置的,對于每個 Web 應(yīng)用程序,您可以修改該 Web 應(yīng)用程序的根目錄中的 Web.config 文件而不是 Machine.config 文件。
在不需要 HTTP-GET 和 HTTP-POST 消息處理協(xié)議的生產(chǎn)用計算機上,最好在整個計算機中禁用對這些協(xié)議的支持。對于 XML Web service 客戶端使用 HTTP-GET 或 HTTP-POST 與 XML Web service 進(jìn)行通信的特殊情況,可以為使用這些協(xié)議的 Web 應(yīng)用程序添加對這些協(xié)議的支持。
在整個計算機上禁用 HTTP-GET 和 HTTP-POST
協(xié)議(建議)
使用常用的文本編輯器打開 Machine.config 文件。(默認(rèn)安裝將 Machine.config 放在
C:WINDOWSMicrosoft.NETFrameworkv1.0.3705CONFIG 文件夾中。)
在 webServices
節(jié)中標(biāo)出添加 HTTP-GET 和 HTTP-POST 支持的命令行。執(zhí)行此操作后,webServices
節(jié)應(yīng)如下所示:
<webServices>
<protocols>
<add name="HttpSoap"/>
<!-- <add
name="HttpPost"/> -->
<!-- <add name="HttpGet"/>
-->
<add name="Documentation"/>
</protocols>
</webServices>
保存 Machine.config。
此配置更改將在下一次對該計算機上的 XML Web service
發(fā)出請求時生效。
在單個 Web 應(yīng)用程序上禁用 HTTP-GET 和 HTTP-POST
協(xié)議
使用常用的編輯器打開 Web 應(yīng)用程序根目錄中的 Web.config 文件。(如果不存在 Web.config
文件,則創(chuàng)建該文件。)
修改 Web.config 的 webServices 節(jié),使用以下格式顯式刪除 HTTP-POST 和
HTTP-GET 協(xié)議(如果 Web.config 文件不包含 webServices
節(jié),則添加該節(jié)):
<webServices>
<protocols>
<remove
name="HttpPost" />
<remove
name="HttpGet" />
</protocols>
</webServices>
保存 Web.config。
此配置更改將在下一次對該 Web 應(yīng)用程序上的 XML Web service
發(fā)出請求時生效。
在單個 Web 應(yīng)用程序上添加 HTTP-GET 和 HTTP-POST 協(xié)議支持
使用常用的編輯器打開 Web
應(yīng)用程序根目錄中的 Web.config 文件。(如果不存在 Web.config 文件,則創(chuàng)建該文件。)
修改 Web.config 的
webServices 節(jié),使用以下格式添加 HTTP-POST 和 HTTP-GET 協(xié)議(如果 Web.config 文件不包含 webServices
節(jié),則添加該節(jié)):
<webServices>
<protocols>
<add
name="HttpPost" />
<add
name="HttpGet" />
</protocols>
</webServices>
保存 Web.config。
此配置更改將在下一次對該 Web 應(yīng)用程序上的 XML Web service
發(fā)出請求時生效。
禁用 HTTP-GET 和/或 HTTP-POST
的影響
對于生產(chǎn)用計算機,禁用 HTTP-GET 和 HTTP-POST
協(xié)議所帶來的弊端微乎其微。弊端包括:
XML Web service 的默認(rèn)服務(wù)幫助頁面繼續(xù)有效,但潛在的客戶端將無法使用服務(wù)幫助頁面上的
Invoke(調(diào)用)按鈕測試 XML Web service。
如果要在 Microsoft Visual Studio? .NET 中調(diào)試
XML Web service,您必須創(chuàng)建一個測試客戶端程序。
對于投入使用的 XML Web service,這兩個弊端都可以輕松克服,因為
Visual Studio .NET 提供了 Add Web Reference(添加 Web 引用)命令,使創(chuàng)建 XML Web service
的客戶端變得非常簡單。
總結(jié)
提供用 ASP.NET 創(chuàng)建的 XML Web services
的生產(chǎn)用計算機應(yīng)該在整個計算機中禁用對 HTTP-GET 和 HTTP-POST
消息處理協(xié)議的支持,以避免在很多情況下可能出現(xiàn)的安全問題。對于早期開發(fā)而言,您可以在開發(fā)用計算機上啟用這些協(xié)議;這樣,開發(fā)用計算機便可以使用服務(wù)幫助頁面來測試
XML Web services。將計算機投入實際使用時,請修改 .config 文件以禁用 HTTP-GET 和 HTTP-POST
協(xié)議。
需要說明的是,這并不是 XML Web service 開發(fā)人員應(yīng)當(dāng)采取的唯一安全措施,它只是保護(hù) XML Web service 的安全所涉及的諸多步驟和問題之一。
- 1上海OA與企業(yè)信息化之路
- 2聯(lián)合國《2003 年電子商務(wù)與發(fā)展報告》
- 3IDC:網(wǎng)絡(luò)服務(wù)的宣傳是否樂觀過頭?
- 4上海OA能賺錢
- 5開啟“黃金屋”--析個人上海OA
- 6企業(yè)報告管理(ERM)與CRM(AMT 黃健 編譯)
- 7泛普OA軟件2014年-2018年在大上海重點發(fā)展100家代理商
- 8沒有哪個OA軟件選型者不關(guān)心OA軟件的價格
- 9Web服務(wù)的標(biāo)準(zhǔn)之爭和商機之爭
- 10WEB服務(wù)“不是”什么
- 11上海OA詞典
- 12通往供應(yīng)鏈整合的道路:上海OA初步(by AMT 姚磊)
- 13與IBM微軟分庭抗禮 Sun欲當(dāng)WS-I新董事
- 14.Net和Java機會均等
- 15協(xié)作,“讓我們暢談”
- 16上海OA軟件市場2006年將達(dá)20億歐元
- 17架起結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)之間的橋梁(AMT 唐曉輝 編譯)
- 18IBM全球“大腦”:藍(lán)色大象翩翩起舞的知識動力
- 19機構(gòu)上海OA的實務(wù)指引
- 20微軟為推XML搞結(jié)盟
- 21IBM發(fā)布新軟件,強化Web服務(wù)安全性
- 22第二代Web服務(wù)展望
- 23“管理信息化熱點問題討論”之八:上海OA很好,但到底如何實現(xiàn)(by AMT 孔祥云 徐家?。?
- 24有效的知識
- 25跨越信息訪問的鴻溝!(by AMT 方厚政)
- 26PKM:個人上海OA
- 27促進(jìn)術(shù)語標(biāo)準(zhǔn)化 W3C出版“網(wǎng)絡(luò)服務(wù)字匯表”
- 28個人上海OA(PKM)如何實施?(田志剛)
- 29Web服務(wù)防黑談(一)
- 30避免上海OA項目失敗的十大要項
成都公司:成都市成華區(qū)建設(shè)南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓
版權(quán)所有:泛普軟件 渝ICP備14008431號-2 渝公網(wǎng)安備50011202501700號 咨詢電話:400-8352-114