Ajax訪問XmlWebService的安全問題以及解決方案_第1頁
Ajax訪問XmlWebService的安全問題以及解決方案_第2頁
Ajax訪問XmlWebService的安全問題以及解決方案_第3頁
Ajax訪問XmlWebService的安全問題以及解決方案_第4頁
Ajax訪問XmlWebService的安全問題以及解決方案_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、ajax訪問xm i web service的安全問題以及解決方案在 ajax中updatepanel比較常用,原本需要刷新的操作套在updatepanel中就成了 ajax操作 了,挺帥!但ajax也是支持與xml web service交互的,這種方法更像是傳統(tǒng) 的ajaxpro和其他ajax框架,如jquery,magicajax,extjs的風(fēng)格,但ms總是 獨樹-幟,誰訃他的產(chǎn)品設(shè)計能力那么高呢!我輩恐怕望塵莫及亞.閑話少敘,下 面簡單講述h ajax如何調(diào)用xml web service,熟悉的刖友就略過 吧1. 創(chuàng)建一個支持asp.net ajax的網(wǎng)站或者網(wǎng)絡(luò)應(yīng)用程序,我使用的

2、是vs2008,在vs2008中,如果 建立的網(wǎng)站支持.net framework 3.5就有ajax的缺省支持,這陳芝麻,爛谷子的爭情,也不多說。2. 建立好項目之后,在網(wǎng)站根目錄中添加一個web服務(wù)userservice.asmx,在userservice.asmx中 添加如下方法:webmethodpublic bool useradd(string username, string pwd)lj±jreturn true;l、注意服務(wù)類上部要添加attributesystem. web. script. services scriptservice3. 然后把default.

3、aspx屮的scriptmanager修改成如下代碼的徳性:<asp:scriptmanager id=nscriptmanager1" runat= "server's< services><asp:servicereference path= "userservice.asmx" /></services></asp:scriptma nager>卜怖我們就在頁面中創(chuàng)建用ajax消費這個userservice的代碼:主要包括如下:v h2> ajax 調(diào)用 xml web servi

4、ce 示例 1 </h2><div style= "border: 1 px solid black; width: 50%; padding: 10px;<table class= "stylel "><tr>< td>用戶名:</td>< td>vinput id="txtname" type= "text'1 /></td></tr>< tr><td>密碼:</td><td

5、>vinput id二”txtpwd” type= "password" /></td></tr><tr><td>&nbsp;</td><td>< input id= "button2" type= "button" value="提交” onclick= "useradd()" /></td></tr></table></div>在vhead>&l

6、t;/head>添加如f腳本function useradd()ivar name = $get("txtnamen)value;ivar pwd = $get("txtpwdh).value;ajaxws.userservice. user add (n ame,pwd,useraddcallback);i片function useraddcallback(res)ldl±lalert(res);單,運行頁面,點擊提交按鈕,效果如下:windows internet explor叵竺5)true表示成功。一般人這一步都會成功的。二般的除外亞)一些正常,那是

7、不是到這里就萬事大吉,ajax jj歲! web service真好!下而是略加思考z后的問題問題一:上面的xml web service沒有任何保護,如果useradd是一個數(shù)據(jù)庫插入操作,那這個操作往往系統(tǒng) 只被經(jīng)過授權(quán)的人才能調(diào)川成功。以前看有朋友討論ajax如何調(diào)川帶有soapheader的xml web ser vice,細(xì)細(xì)想想,其實沒什么必耍! js是客戶端的東西,是放出去收不回來的玩意,天知道用戶是哪路貨 色,如果將身份信息試圖通過js傳遞給soapheader,那密碼被截獲的可能性就比較大。正確的做法其 實是 session .我們知道 web service 方法中添加一個

8、wcbmethod(enablesession=true)就能使用 ses sion 了,session這家伙專門用丁-保持會話,有這樣一個認(rèn)識之后,新增一個網(wǎng)絡(luò)服務(wù)方法,這個方法實 現(xiàn)功能和起初的user add 一致,只是添加上訪問限制wcbmethod(enablesession=truc)public bool uscraddsccurity(string uscrname, string pwd)曰田if (session"user 1dz/ = null)艸return false;hireturn true;在頁面中將 ajaxws. userservice. user

9、add (name, pwd, useraddcallback);更改為 ajaxws. userservice. use raddsecuri ty (name, pwd, useraddcaliback);點擊提交按鈕,會發(fā)現(xiàn)彈出結(jié)果為 false!在頁面中添加一個按鈕,點擊這個按鈕模擬登陸,點擊代碼為:protected void button3_click(object sender, eventargs e)ldl±li sessionuserld = "jillzhang"l點擊登陸按鈕后,再次點擊提交,便可以返回true。這樣便限制了用戶對xml w

10、eb service的訪問。達 到了解決問題一的目的。問題二:這個問題涉及到xml web service架構(gòu)的缺陷,這個缺陷在wcf中已經(jīng)有所更正和彌補。我們知道web se rvice是一刊|強度公開和共享的技術(shù),z所以稱z為服務(wù),必然是提供給其他應(yīng)用程序所使用。但事實上,有很多服務(wù)是服務(wù)于局部或者特殊個體的,而不是理想中的人眾。而在原來老的xml web service中,wsdl的發(fā)布與網(wǎng)絡(luò)服務(wù)的發(fā)布是綁在一起的,我將.asmx部署到iis中,那在這個.asmx后加上?vsdl就能訪 問服務(wù)的wsdlo wsdl是對服務(wù)的描述,知道它,便能開發(fā)客戶代理,從而消費服務(wù),但這樣有問題:我的

11、 服務(wù)只想讓局部或者特姝的兒個人知道,其他人根本不想讓其訪問到。這就麻煩了。我發(fā)布.asmx, wsdl 就發(fā)布。而wsdl的發(fā)現(xiàn)依靠的是uddt,通過下而的一段描述:uddi如何被使用假如行業(yè)發(fā)布了一個用于航班比率檢測和預(yù)訂的uddi標(biāo)準(zhǔn),航空公罰就可以把 它們的服務(wù)注冊到一個uddi目錄中。然后旅行社就能夠搜索這個uddi目錄以 找到航空公司預(yù)訂界面。當(dāng)此界面被找到后,旅行社就能夠立即與此服務(wù)進行通 信,這樣由于它使用了一套定義良好的預(yù)訂界而。如果遍歷uddt ei錄,不難發(fā)現(xiàn)wsdl,發(fā)現(xiàn)wsdi,后便可以開發(fā)客戶端與服務(wù)交互。這可不是好事怖,在問 題一中,用授權(quán)的方法可以解決種問題,但假如我的服務(wù)是這樣的,它返i川服務(wù)器當(dāng)前時間,這個方法 對于我網(wǎng)站的用戶而言是公開的,如果生硬的加上session,冇些麻煩。但這個服務(wù)我只希望我h己的aj ax能訪問,不希望別人發(fā)現(xiàn)并調(diào)用,但原來的xml web service架構(gòu)的確不能滿足這個需求。如果被一個 攻擊者發(fā)現(xiàn),他可能會根據(jù)公開的wsdl開發(fā)客戶端,然后不停的dd0s攻擊,災(zāi)難!上面這個問題對于原來的web service,我還是沒有好的解決方案,當(dāng)然不代表沒有解決方案。有刖友知 道,勞煩指教。但對于wcf架構(gòu),就充分考慮到上面這個問題了??纯聪卵系膞ml web service架構(gòu)與wcf架構(gòu)z間的 對比:1)老架構(gòu)m

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論