一種客戶(hù)端與web服務(wù)端的交互方法及系統(tǒng)的制作方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種客戶(hù)端與WEB服務(wù)端的交互方法及系統(tǒng),通過(guò)系統(tǒng)平臺(tái)接收用戶(hù)所請(qǐng)求的WEB服務(wù);所述客戶(hù)端根據(jù)客戶(hù)端記號(hào)和平臺(tái)編號(hào)加密形成第一簽名串,并在用戶(hù)所請(qǐng)求的WEB服務(wù)對(duì)應(yīng)的請(qǐng)求URL中加入所述第一簽名串和平臺(tái)編號(hào);所述WEB服務(wù)端從帶有所述第一簽名串和平臺(tái)編號(hào)的請(qǐng)求URL中分離出第一簽名串,并根據(jù)所述平臺(tái)編號(hào)及其對(duì)應(yīng)關(guān)聯(lián)的客戶(hù)端記號(hào)加密形成第二簽名串;判斷所述第一簽名串與第二簽名串是否相同,若是,則所述WEB服務(wù)端根據(jù)所述請(qǐng)求URL返回所述WEB服務(wù)對(duì)應(yīng)的WEB服務(wù)結(jié)果至所述系統(tǒng)平臺(tái);使得客戶(hù)端與WEB服務(wù)端的數(shù)據(jù)交互安全性大大提高,實(shí)現(xiàn)了客戶(hù)端與WEB服務(wù)端交互安全控制,帶來(lái)了方便。
【專(zhuān)利說(shuō)明】一種客戶(hù)端與WEB服務(wù)端的交互方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及WEB服務(wù)領(lǐng)域,尤其涉及的是一種客戶(hù)端與WEB服務(wù)端的交互方法及 系統(tǒng)。
【背景技術(shù)】
[0002] 現(xiàn)有技術(shù)一般采用基于S0AP(Simple Object Access Protocol,簡(jiǎn)單對(duì)象訪(fǎng)問(wèn)協(xié) 議)協(xié)議的WEB服務(wù)來(lái)進(jìn)行傳輸,由于SOAP協(xié)議在最初設(shè)計(jì)時(shí),只是一個(gè)傳送協(xié)議,沒(méi)有考 慮安全性的問(wèn)題。盡管可以通過(guò)WSE3.0、IIS的安全機(jī)制或SOAP自帶的用戶(hù)名和密碼服務(wù) 進(jìn)行加密等,但都存在限制性,且只能實(shí)現(xiàn)點(diǎn)到點(diǎn)傳輸?shù)陌踩?,無(wú)法提供端到端的安全,導(dǎo) 致WEB服務(wù)的安全性不高。
[0003] 因此,現(xiàn)有技術(shù)還有待于改進(jìn)和發(fā)展。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明要解決的技術(shù)問(wèn)題在于,提供一種客戶(hù)端與WEB服務(wù)端的交互方法及系 統(tǒng),旨在解決現(xiàn)有的WEB服務(wù)交互的安全性低的問(wèn)題。
[0005] 本發(fā)明解決技術(shù)問(wèn)題所采用的技術(shù)方案如下: 一種客戶(hù)端與WEB服務(wù)端的交互方法,其中,包括以下步驟: A、 WEB服務(wù)端預(yù)先給客戶(hù)端分配客戶(hù)端記號(hào),并對(duì)客戶(hù)端上的系統(tǒng)平臺(tái)分配平臺(tái)編號(hào), 將所述客戶(hù)端記號(hào)與所述平臺(tái)編號(hào)對(duì)應(yīng)關(guān)聯(lián); B、 所述系統(tǒng)平臺(tái)接收用戶(hù)所請(qǐng)求的WEB服務(wù); C、 所述客戶(hù)端根據(jù)所述客戶(hù)端記號(hào)和平臺(tái)編號(hào)加密形成第一簽名串,并在用戶(hù)所請(qǐng)求 的WEB服務(wù)對(duì)應(yīng)的請(qǐng)求URL中加入所述第一簽名串和平臺(tái)編號(hào); D、 所述系統(tǒng)平臺(tái)將帶有所述第一簽名串和平臺(tái)編號(hào)的請(qǐng)求URL發(fā)送至WEB服務(wù)端; E、 所述WEB服務(wù)端從帶有所述第一簽名串和平臺(tái)編號(hào)的請(qǐng)求URL中分離出第一簽名 串,并根據(jù)所述平臺(tái)編號(hào)及其對(duì)應(yīng)關(guān)聯(lián)的客戶(hù)端記號(hào)加密形成第二簽名串; F、 判斷所述第一簽名串與第二簽名串是否相同,若是,則所述WEB服務(wù)端根據(jù)所述請(qǐng) 求URL返回所述WEB服務(wù)對(duì)應(yīng)的WEB服務(wù)結(jié)果至所述系統(tǒng)平臺(tái)。
[0006] 所述的客戶(hù)端與WEB服務(wù)端的交互方法,其中,所述步驟C具體包括: C1、客戶(hù)端根據(jù)所述客戶(hù)端記號(hào)和平臺(tái)編號(hào)經(jīng)過(guò)MD5加密形成第一簽名串; C2、將所述第一簽名串和平臺(tái)編號(hào)拼接到用戶(hù)所請(qǐng)求的WEB服務(wù)對(duì)應(yīng)的請(qǐng)求URL上。
[0007] 所述的客戶(hù)端與WEB服務(wù)端的交互方法,其中,所述步驟F具體包括: F1、所述WEB服務(wù)端根據(jù)所述請(qǐng)求URL返回所述WEB服務(wù)對(duì)應(yīng)的json數(shù)據(jù)或html頁(yè) 面至所述系統(tǒng)平臺(tái)。
[0008] 所述的客戶(hù)端與WEB服務(wù)端的交互方法,其中,所述步驟C還包括: C3、在用戶(hù)所請(qǐng)求的WEB服務(wù)對(duì)應(yīng)的請(qǐng)求URL中加入時(shí)間戳。
[0009] 所述的客戶(hù)端與WEB服務(wù)端的交互方法,其中,所述步驟F還包括: F2、判斷WEB服務(wù)端接收所述請(qǐng)求URL時(shí)的時(shí)間與所述請(qǐng)求URL中的時(shí)間戳的時(shí)間差 是否超過(guò)時(shí)間閾值,當(dāng)所述時(shí)間差沒(méi)有超過(guò)時(shí)間閾值時(shí),則所述WEB服務(wù)端根據(jù)所述請(qǐng)求 URL返回所述WEB服務(wù)對(duì)應(yīng)的WEB服務(wù)結(jié)果至所述系統(tǒng)平臺(tái)。
[0010] 一種客戶(hù)端與WEB服務(wù)端的交互系統(tǒng),其中,包括:客戶(hù)端和WEB服務(wù)端; 所述客戶(hù)端包括: 接收模塊,用于通過(guò)系統(tǒng)平臺(tái)接收用戶(hù)所請(qǐng)求的WEB服務(wù); 請(qǐng)求URL生成模塊,用于根據(jù)所述客戶(hù)端記號(hào)和平臺(tái)編號(hào)加密形成第一簽名串,并在 用戶(hù)所請(qǐng)求的WEB服務(wù)對(duì)應(yīng)的請(qǐng)求URL中加入所述第一簽名串和平臺(tái)編號(hào); 請(qǐng)求URL發(fā)送模塊,用于通過(guò)系統(tǒng)平臺(tái)將帶有所述第一簽名串和平臺(tái)編號(hào)的請(qǐng)求URL 發(fā)送至WEB服務(wù)端; 所述WEB服務(wù)端包括: 預(yù)先標(biāo)記模塊,用于預(yù)先給客戶(hù)端分配客戶(hù)端記號(hào),并對(duì)客戶(hù)端上的系統(tǒng)平臺(tái)分配平 臺(tái)編號(hào),將所述客戶(hù)端記號(hào)與所述平臺(tái)編號(hào)對(duì)應(yīng)關(guān)聯(lián); 簽名串分離及生成模塊,用于從帶有所述第一簽名串和平臺(tái)編號(hào)的請(qǐng)求URL中分離出 第一簽名串,并根據(jù)所述平臺(tái)編號(hào)及其對(duì)應(yīng)關(guān)聯(lián)的客戶(hù)端記號(hào)加密形成第二簽名串; 簽名串對(duì)比模塊,用于判斷所述第一簽名串與第二簽名串是否相同,若是,則所述WEB 服務(wù)端根據(jù)所述請(qǐng)求URL返回所述WEB服務(wù)對(duì)應(yīng)的WEB服務(wù)結(jié)果至所述系統(tǒng)平臺(tái)。
[0011] 所述的客戶(hù)端與WEB服務(wù)端的交互系統(tǒng),其中,所述請(qǐng)求URL生成模塊包括: 第一簽名串生成單元,用于客戶(hù)端根據(jù)所述客戶(hù)端記號(hào)和平臺(tái)編號(hào)經(jīng)過(guò)MD5加密形成 第一簽名串; 請(qǐng)求URL生成單元,用于將所述第一簽名串和平臺(tái)編號(hào)拼接到用戶(hù)所請(qǐng)求的WEB服務(wù) 對(duì)應(yīng)的請(qǐng)求URL上。
[0012] 所述的客戶(hù)端與WEB服務(wù)端的交互系統(tǒng),其中,所述簽名串對(duì)比模塊用于判斷所 述第一簽名串與第二簽名串是否相同,若為是,則所述WEB服務(wù)端根據(jù)所述請(qǐng)求URL返回所 述WEB服務(wù)對(duì)應(yīng)的json數(shù)據(jù)或html頁(yè)面至所述系統(tǒng)平臺(tái)。
[0013] 所述的客戶(hù)端與WEB服務(wù)端的交互系統(tǒng),其中,所述請(qǐng)求URL生成模塊包括: 時(shí)間加入單元,用于在用戶(hù)所請(qǐng)求的WEB服務(wù)對(duì)應(yīng)的請(qǐng)求URL中加入時(shí)間戳。
[0014] 所述的客戶(hù)端與WEB服務(wù)端的交互系統(tǒng),其中,所述簽名串對(duì)比模塊包括: 時(shí)間對(duì)比單元,用于判斷WEB服務(wù)端接收所述請(qǐng)求URL時(shí)的時(shí)間與所述請(qǐng)求URL中的 時(shí)間戳的時(shí)間差是否超過(guò)時(shí)間閾值,當(dāng)所述時(shí)間差沒(méi)有超過(guò)時(shí)間閾值時(shí),則所述WEB服務(wù) 端根據(jù)所述請(qǐng)求URL返回所述WEB服務(wù)對(duì)應(yīng)的WEB服務(wù)結(jié)果至所述系統(tǒng)平臺(tái)。
[0015] 本發(fā)明所提供的一種客戶(hù)端與WEB服務(wù)端的交互方法及系統(tǒng),有效地解決了現(xiàn)有 的WEB服務(wù)的數(shù)據(jù)交互的安全性不高的問(wèn)題,通過(guò)WEB服務(wù)端預(yù)先給客戶(hù)端分配客戶(hù)端記 號(hào),并對(duì)客戶(hù)端上的系統(tǒng)平臺(tái)分配平臺(tái)編號(hào),將所述客戶(hù)端記號(hào)與所述平臺(tái)編號(hào)對(duì)應(yīng)關(guān)聯(lián); 所述系統(tǒng)平臺(tái)接收用戶(hù)所請(qǐng)求的WEB服務(wù);所述客戶(hù)端根據(jù)所述客戶(hù)端記號(hào)和平臺(tái)編號(hào)加 密形成第一簽名串,并在用戶(hù)所請(qǐng)求的WEB服務(wù)對(duì)應(yīng)的請(qǐng)求URL中加入所述第一簽名串和 平臺(tái)編號(hào);所述系統(tǒng)平臺(tái)將帶有所述第一簽名串和平臺(tái)編號(hào)的請(qǐng)求URL發(fā)送至WEB服務(wù)端; 所述WEB服務(wù)端從帶有所述第一簽名串和平臺(tái)編號(hào)的請(qǐng)求URL中分離出第一簽名串,并根 據(jù)所述平臺(tái)編號(hào)及其對(duì)應(yīng)關(guān)聯(lián)的客戶(hù)端記號(hào)加密形成第二簽名串;判斷所述第一簽名串與 第二簽名串是否相同,若是,則所述WEB服務(wù)端根據(jù)所述請(qǐng)求URL返回所述WEB服務(wù)對(duì)應(yīng)的 WEB服務(wù)結(jié)果至所述系統(tǒng)平臺(tái);通過(guò)將預(yù)先給客戶(hù)端分配客戶(hù)端記號(hào)和對(duì)客戶(hù)端上的系統(tǒng) 平臺(tái)分配平臺(tái)編號(hào)加密生成第一簽名串,并拼接入WEB服務(wù)對(duì)應(yīng)的請(qǐng)求URL中,驗(yàn)簽通過(guò)的 請(qǐng)求URL,WEB服務(wù)端根據(jù)URL中的參數(shù)把結(jié)果返回給調(diào)用的系統(tǒng)平臺(tái),所述系統(tǒng)平臺(tái)根據(jù) 各自的應(yīng)用需要給用戶(hù)呈現(xiàn)WEB服務(wù)結(jié)果,使得客戶(hù)端與WEB服務(wù)端的數(shù)據(jù)交互安全性大 大提高,通過(guò)生成簽名串并驗(yàn)證實(shí)現(xiàn)了客戶(hù)端與WEB服務(wù)端交互的安全控制,通過(guò)軟件實(shí) 現(xiàn),成本較低,帶來(lái)了大大的方便。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0016] 圖1為本發(fā)明提供的客戶(hù)端與WEB服務(wù)端的交互方法較佳實(shí)施例的流程圖。
[0017] 圖2為本發(fā)明提供的客戶(hù)端與WEB服務(wù)端的交互系統(tǒng)較佳實(shí)施例的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0018] 本發(fā)明提供一種客戶(hù)端與WEB服務(wù)端的交互方法及系統(tǒng),為使本發(fā)明的目的、技 術(shù)方案及優(yōu)點(diǎn)更加清楚、明確,以下參照附圖并舉實(shí)施例對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理 解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0019] 請(qǐng)參閱圖1,圖1為本發(fā)明提供的客戶(hù)端與WEB服務(wù)端的交互方法較佳實(shí)施例的流 程圖,如圖所示,所述方法包括以下步驟: 步驟S100、WEB服務(wù)端預(yù)先給客戶(hù)端分配客戶(hù)端記號(hào),并對(duì)客戶(hù)端上的系統(tǒng)平臺(tái)分配 平臺(tái)編號(hào),將所述客戶(hù)端記號(hào)與所述平臺(tái)編號(hào)對(duì)應(yīng)關(guān)聯(lián); 步驟S200、所述系統(tǒng)平臺(tái)接收用戶(hù)所請(qǐng)求的WEB服務(wù); 步驟S300、所述客戶(hù)端根據(jù)所述客戶(hù)端記號(hào)和平臺(tái)編號(hào)加密形成第一簽名串,并在用 戶(hù)所請(qǐng)求的WEB服務(wù)對(duì)應(yīng)的請(qǐng)求URL (Uniform Resource Locator,統(tǒng)一資源定位符,是對(duì) 可以從互聯(lián)網(wǎng)上得到的資源的位置和訪(fǎng)問(wèn)方法的一種簡(jiǎn)潔的表示,是互聯(lián)網(wǎng)上標(biāo)準(zhǔn)資源的 地址)中加入所述第一簽名串和平臺(tái)編號(hào); 步驟S400、所述系統(tǒng)平臺(tái)將帶有所述第一簽名串和平臺(tái)編號(hào)的請(qǐng)求URL發(fā)送至WEB服 務(wù)端; 步驟S500、所述WEB服務(wù)端從帶有所述第一簽名串和平臺(tái)編號(hào)的請(qǐng)求URL中分離出第 一簽名串,并根據(jù)所述平臺(tái)編號(hào)及其對(duì)應(yīng)關(guān)聯(lián)的客戶(hù)端記號(hào)加密形成第二簽名串; 步驟S600、判斷所述第一簽名串與第二簽名串是否相同,若是,則所述WEB服務(wù)端根據(jù) 所述請(qǐng)求URL返回所述WEB服務(wù)對(duì)應(yīng)的WEB服務(wù)結(jié)果至所述系統(tǒng)平臺(tái)。
[0020] 下面結(jié)合具體的實(shí)施例對(duì)上述步驟進(jìn)行詳細(xì)的描述。
[0021] 在步驟S100中,WEB服務(wù)端預(yù)先給客戶(hù)端分配客戶(hù)端記號(hào),并對(duì)客戶(hù)端上的系統(tǒng) 平臺(tái)分配平臺(tái)編號(hào),將所述客戶(hù)端記號(hào)與所述平臺(tái)編號(hào)對(duì)應(yīng)關(guān)聯(lián)。具體來(lái)說(shuō),WEB服務(wù)端預(yù) 先給多個(gè)客戶(hù)端及多個(gè)系統(tǒng)平臺(tái)分配對(duì)應(yīng)的標(biāo)識(shí),在實(shí)際應(yīng)用時(shí),對(duì)每一個(gè)客戶(hù)端分配對(duì) 應(yīng)的客戶(hù)端記號(hào),也就是Token (令牌,該令牌是個(gè)數(shù)字或字母形式的字符串,用于身份驗(yàn) 證)值,所述Token值為WEB服務(wù)端的生產(chǎn)廠(chǎng)商與客戶(hù)端的用戶(hù)雙方協(xié)商好的;并對(duì)每一個(gè) 對(duì)客戶(hù)端上的系統(tǒng)平臺(tái)分配平臺(tái)編號(hào),也就是系統(tǒng)平臺(tái)對(duì)應(yīng)的System ID。所述系統(tǒng)平臺(tái) 為外部系統(tǒng)平臺(tái),用戶(hù)通過(guò)客戶(hù)端上的系統(tǒng)平臺(tái)與WEB服務(wù)端進(jìn)行交互。舉例說(shuō)明如下:用 戶(hù)需要某個(gè)WEB服務(wù)端提供的某WEB服務(wù),這必須得通過(guò)與WEB服務(wù)端合作的系統(tǒng)平臺(tái)才 能登入從而得到對(duì)應(yīng)的WEB服務(wù)結(jié)果,而系統(tǒng)平臺(tái)是安裝在客戶(hù)端上的。并且,Token值和 System ID是對(duì)應(yīng)關(guān)聯(lián)的,也就是說(shuō)客戶(hù)端的Token值與客戶(hù)端上的系統(tǒng)平臺(tái)的System ID 是相互關(guān)聯(lián)的,通過(guò)System ID便可得知客戶(hù)端的Token值。進(jìn)一步地,Token值和System ID是一一對(duì)應(yīng)的關(guān)系,分發(fā)給系統(tǒng)平臺(tái)的客戶(hù)端都有唯一的Token值。
[0022] 在步驟S200中,所述系統(tǒng)平臺(tái)接收用戶(hù)所請(qǐng)求的WEB服務(wù)。具體來(lái)說(shuō),就是用戶(hù) 通過(guò)客戶(hù)端上的系統(tǒng)平臺(tái)向WEB服務(wù)端發(fā)送想要接收的WEB服務(wù)請(qǐng)求。這與現(xiàn)有的WEB服 務(wù)請(qǐng)求相同,此處不作過(guò)多描述。
[0023] 在步驟S300中,所述客戶(hù)端根據(jù)所述客戶(hù)端記號(hào)和平臺(tái)編號(hào)加密形成第一簽名 串,在用戶(hù)所請(qǐng)求的WEB服務(wù)對(duì)應(yīng)的請(qǐng)求URL中加入所述第一簽名串和平臺(tái)編號(hào)。具體來(lái) 說(shuō),當(dāng)用戶(hù)需要使用某WEB服務(wù)時(shí),客戶(hù)端便會(huì)根據(jù)所述客戶(hù)端的Token值和系統(tǒng)平臺(tái)的 System ID加密形成第一簽名串,然后將所述第一簽名串和平臺(tái)編號(hào)加入用戶(hù)所請(qǐng)求的WEB 服務(wù)對(duì)應(yīng)的請(qǐng)求URL中。
[0024] 進(jìn)一步地,所述步驟S300包括:S310、客戶(hù)端根據(jù)所述客戶(hù)端記號(hào)和平臺(tái)編號(hào)經(jīng) 過(guò)MD5 (Message Digest Algorithm ,消息摘要算法第五版,一種加密算法)加密形成第一 簽名串;S320、將所述第一簽名串和平臺(tái)編號(hào)拼接到用戶(hù)所請(qǐng)求的WEB服務(wù)對(duì)應(yīng)的請(qǐng)求URL 上。在實(shí)際應(yīng)用時(shí),客戶(hù)端會(huì)按預(yù)先設(shè)置的規(guī)則把約定好的Token值和System ID,經(jīng)過(guò)MD5 加密形成第一簽名串sign,最后將第一簽名串sign拼接到用戶(hù)所請(qǐng)求的WEB服務(wù)對(duì)應(yīng)的請(qǐng) 求URL上。
[0025] 在步驟S400中,所述系統(tǒng)平臺(tái)將帶有所述第一簽名串和平臺(tái)編號(hào)的請(qǐng)求URL發(fā)送 至WEB服務(wù)端。具體來(lái)說(shuō),客戶(hù)端根據(jù)用戶(hù)請(qǐng)求的WEB服務(wù)、客戶(hù)端記號(hào)和平臺(tái)編號(hào)生成帶 有所述第一簽名串和平臺(tái)編號(hào)的請(qǐng)求URL,返回供系統(tǒng)平臺(tái)發(fā)送至WEB服務(wù)端。
[0026] 在步驟S500中,所述WEB服務(wù)端從帶有所述第一簽名串和平臺(tái)編號(hào)的請(qǐng)求URL 中分離出第一簽名串,并根據(jù)所述平臺(tái)編號(hào)及其對(duì)應(yīng)關(guān)聯(lián)的客戶(hù)端記號(hào)加密形成第二簽名 串。具體來(lái)說(shuō),收到請(qǐng)求URL的Web服務(wù)端,從中分離出第一簽名串,并得到對(duì)應(yīng)的平臺(tái)編 號(hào),由于所述客戶(hù)端記號(hào)與所述平臺(tái)編號(hào)對(duì)應(yīng)關(guān)聯(lián),WEB服務(wù)端根據(jù)平臺(tái)編號(hào)便可得到對(duì)應(yīng) 的客戶(hù)端記號(hào),然后WEB服務(wù)端根據(jù)所述客戶(hù)端記號(hào)和平臺(tái)編號(hào)加密形成第二簽名串。也 就是說(shuō),WEB服務(wù)端根據(jù)URL參數(shù)中的System ID找到對(duì)應(yīng)的Token值,生成第二簽名串進(jìn) 而來(lái)驗(yàn)證第一簽名串。
[0027] 在步驟S600中,判斷所述第一簽名串與第二簽名串是否相同,若是,則所述WEB服 務(wù)端根據(jù)所述請(qǐng)求URL返回所述WEB服務(wù)對(duì)應(yīng)的WEB服務(wù)結(jié)果至所述系統(tǒng)平臺(tái)。具體來(lái)說(shuō), 就是對(duì)比前后的第一簽名串和第二簽名串是否相同,若相同,則表明驗(yàn)證通過(guò),URL請(qǐng)求合 法,則所述WEB服務(wù)端根據(jù)所述請(qǐng)求URL返回所述WEB服務(wù)對(duì)應(yīng)的WEB服務(wù)結(jié)果至所述系 統(tǒng)平臺(tái),從而完客戶(hù)端與WEB服務(wù)端的交互成。這樣,WEB服務(wù)端通過(guò)驗(yàn)證第一簽名串便可 實(shí)現(xiàn)了系統(tǒng)平臺(tái)與WEB服務(wù)端交互的安全控制。
[0028] 在實(shí)際應(yīng)用時(shí),所述步驟S600具體包括:S610、所述WEB服務(wù)端根據(jù)所述請(qǐng)求URL 返回所述WEB服務(wù)對(duì)應(yīng)的json數(shù)據(jù)或html頁(yè)面至所述系統(tǒng)平臺(tái)。也就是說(shuō),驗(yàn)簽通過(guò) 的請(qǐng)求,WEB服務(wù)根據(jù)URL中的參數(shù),實(shí)現(xiàn)內(nèi)部邏輯,通過(guò)生成json (JavaScript Object Notation,是一種輕量級(jí)的數(shù)據(jù)交換格式)數(shù)據(jù)或返回html (HyperText Markup language, 超級(jí)文本標(biāo)記語(yǔ)言)頁(yè)面,把結(jié)果返回給調(diào)用的系統(tǒng)平臺(tái);外部系統(tǒng)平臺(tái)根據(jù)各自的應(yīng)用需 要,給用戶(hù)呈現(xiàn)結(jié)果。返回結(jié)果以html頁(yè)面形式,以頁(yè)面形式直觀(guān)呈現(xiàn)給用戶(hù),方便系統(tǒng)平 臺(tái)開(kāi)發(fā),不用進(jìn)行對(duì)WEB服務(wù)端的WEB服務(wù)二次開(kāi)發(fā);返回結(jié)果以json數(shù)據(jù)流形式,由于 json數(shù)據(jù)為標(biāo)準(zhǔn)數(shù)據(jù)格式,即通用格式,方便傳輸,可廣泛應(yīng)用于其它程序及設(shè)備。這樣的 結(jié)果反饋,可滿(mǎn)足合作平臺(tái)多方面的快速開(kāi)發(fā)和應(yīng)用。
[0029] 進(jìn)一步地,為了提高客戶(hù)端與WEB服務(wù)端的交互的安全性,所述步驟S300還包括: S330、在用戶(hù)所請(qǐng)求的WEB服務(wù)對(duì)應(yīng)的請(qǐng)求URL中加入時(shí)間戳。也就是說(shuō),在所述請(qǐng)求URL 中加入時(shí)間參數(shù),譬如所述時(shí)間戳為用戶(hù)請(qǐng)求WEB服務(wù)的時(shí)間。
[0030] 進(jìn)一步地,所述步驟S600還包括:S620、判斷WEB服務(wù)端接收所述請(qǐng)求URL時(shí)的時(shí) 間與所述請(qǐng)求URL中的時(shí)間戳的時(shí)間差是否超過(guò)時(shí)間閾值,當(dāng)所述時(shí)間差沒(méi)有超過(guò)時(shí)間閾 值時(shí),則所述WEB服務(wù)端根據(jù)所述請(qǐng)求URL返回所述WEB服務(wù)對(duì)應(yīng)的WEB服務(wù)結(jié)果至所述系 統(tǒng)平臺(tái)。也就是說(shuō),所述請(qǐng)求URL不僅帶有第一簽名串和平臺(tái)編號(hào),還包括時(shí)間戳。WEB服 務(wù)端接收系統(tǒng)平臺(tái)發(fā)送的帶有第一簽名串、平臺(tái)編號(hào)及時(shí)間戳的請(qǐng)求URL,WEB服務(wù)端根據(jù) 接收時(shí)間與時(shí)間戳的時(shí)間差,判斷是否超過(guò)時(shí)間閾值,譬如1小時(shí),若超過(guò),則表明用戶(hù)請(qǐng) 求WEB服務(wù)已經(jīng)過(guò)去很長(zhǎng)時(shí)間,將該請(qǐng)求URL判定為無(wú)效;若未超過(guò),則表明該請(qǐng)求URL還 在有效范圍內(nèi),則所述WEB服務(wù)端根據(jù)所述請(qǐng)求URL返回所述WEB服務(wù)對(duì)應(yīng)的WEB服務(wù)結(jié) 果至所述系統(tǒng)平臺(tái)。也就是在驗(yàn)證簽名串的基礎(chǔ)上,添加了時(shí)間驗(yàn)證,從而提高了安全性。
[0031] 進(jìn)一步地,驗(yàn)簽通過(guò)的請(qǐng)求信息將存入session (會(huì)話(huà),用于存儲(chǔ)需要在整個(gè)用戶(hù) 會(huì)話(huà)過(guò)程中保持其狀態(tài)的信息,例如登錄信息或用戶(hù)瀏覽WEB應(yīng)用程序時(shí)需要的其它信 息),用于以后的其它請(qǐng)求URL的鑒權(quán)。
[0032] 對(duì)本發(fā)明舉例說(shuō)明如下:所述WEB服務(wù)端為現(xiàn)有的直播視頻web服務(wù)、點(diǎn)播視頻 web服務(wù)和試卷web服務(wù),系統(tǒng)平臺(tái)(即WEB服務(wù)端的合作平臺(tái))為全課網(wǎng)平臺(tái)、福建成長(zhǎng)課 堂平臺(tái)和成長(zhǎng)幫手平臺(tái)。當(dāng)用戶(hù)通過(guò)上述任一平臺(tái)請(qǐng)求上述任一 WEB服務(wù)時(shí),客戶(hù)端程序 負(fù)責(zé)生成加第一簽名串的請(qǐng)求URL和驗(yàn)證第一簽名串,WEB服務(wù)端根據(jù)不同的system ID來(lái) 區(qū)分生成不同的系統(tǒng)平臺(tái)的返回?cái)?shù)據(jù)。而直播視頻web服務(wù)、點(diǎn)播視頻web服務(wù)和試卷web 服務(wù)則返回json數(shù)據(jù)或直接返回html頁(yè)面的形式至福建成長(zhǎng)課堂、全課網(wǎng)或成長(zhǎng)幫手等 平臺(tái)上。
[0033] 本發(fā)明提供的客戶(hù)端與WEB服務(wù)端的交互方法,Web服務(wù)和外部系統(tǒng)平臺(tái)的通信 安全,是基于客戶(hù)端的加簽(MD5簽名)URL的安全驗(yàn)證。Web服務(wù)不要求外部系統(tǒng)提供的賬 號(hào)和密碼來(lái)判斷是否合法,用戶(hù)的合法性還是通過(guò)外部系統(tǒng)來(lái)進(jìn)行判斷,帶來(lái)了大大的方 便。
[0034] 基于上述客戶(hù)端與WEB服務(wù)端的交互方法,本發(fā)明實(shí)施例還提供了一種客戶(hù)端與 WEB服務(wù)端的交互系統(tǒng),如圖2所示,所述系統(tǒng)包括:客戶(hù)端100和WEB服務(wù)端200 ; 所述客戶(hù)端100包括: 接收模塊110,用于通過(guò)系統(tǒng)平臺(tái)接收用戶(hù)所請(qǐng)求的WEB服務(wù); 請(qǐng)求URL生成模塊120,用于根據(jù)所述客戶(hù)端記號(hào)和平臺(tái)編號(hào)加密形成第一簽名串,并 在用戶(hù)所請(qǐng)求的WEB服務(wù)對(duì)應(yīng)的請(qǐng)求URL中加入所述第一簽名串和平臺(tái)編號(hào); 請(qǐng)求URL發(fā)送模塊130,用于通過(guò)系統(tǒng)平臺(tái)將帶有所述第一簽名串和平臺(tái)編號(hào)的請(qǐng)求 URL發(fā)送至WEB服務(wù)端; 所述WEB服務(wù)端200包括: 預(yù)先標(biāo)記模塊210,用于預(yù)先給客戶(hù)端分配客戶(hù)端記號(hào),并對(duì)客戶(hù)端上的系統(tǒng)平臺(tái)分配 平臺(tái)編號(hào),將所述客戶(hù)端記號(hào)與所述平臺(tái)編號(hào)對(duì)應(yīng)關(guān)聯(lián); 簽名串分離及生成模塊220,用于從帶有所述第一簽名串和平臺(tái)編號(hào)的請(qǐng)求URL中分 離出第一簽名串,并根據(jù)所述平臺(tái)編號(hào)及其對(duì)應(yīng)關(guān)聯(lián)的客戶(hù)端記號(hào)加密形成第二簽名串; 簽名串對(duì)比模塊230,用于判斷所述第一簽名串與第二簽名串是否相同,若為是,則所 述WEB服務(wù)端根據(jù)所述請(qǐng)求URL返回所述WEB服務(wù)對(duì)應(yīng)的WEB服務(wù)結(jié)果至所述系統(tǒng)平臺(tái)。
[0035] 進(jìn)一步地,所述請(qǐng)求URL生成模塊120包括: 第一簽名串生成單元,用于客戶(hù)端根據(jù)所述客戶(hù)端記號(hào)和平臺(tái)編號(hào)經(jīng)過(guò)MD5加密形成 第一簽名串; 請(qǐng)求URL生成單元,用于將所述第一簽名串和平臺(tái)編號(hào)拼接到用戶(hù)所請(qǐng)求的WEB服務(wù) 對(duì)應(yīng)的請(qǐng)求URL上。
[0036] 進(jìn)一步地,所述簽名串對(duì)比模塊230用于判斷所述第一簽名串與第二簽名串是否 相同,若為是,則所述WEB服務(wù)端根據(jù)所述請(qǐng)求URL返回所述WEB服務(wù)對(duì)應(yīng)的json數(shù)據(jù)或 html頁(yè)面至所述系統(tǒng)平臺(tái)。
[0037] 進(jìn)一步地,所述請(qǐng)求URL生成模塊120包括: 時(shí)間加入單元,用于在用戶(hù)所請(qǐng)求的WEB服務(wù)對(duì)應(yīng)的請(qǐng)求URL中加入時(shí)間戳。
[0038] 進(jìn)一步地,所述簽名串對(duì)比模塊230包括: 時(shí)間對(duì)比單元,用于判斷WEB服務(wù)端接收所述請(qǐng)求URL時(shí)的時(shí)間與所述請(qǐng)求URL中的 時(shí)間戳的時(shí)間差是否超過(guò)時(shí)間閾值,當(dāng)所述時(shí)間差沒(méi)有超過(guò)時(shí)間閾值時(shí),則所述WEB服務(wù) 端根據(jù)所述請(qǐng)求URL返回所述WEB服務(wù)對(duì)應(yīng)的WEB服務(wù)結(jié)果至所述系統(tǒng)平臺(tái)。
[0039] 綜上所述,本發(fā)明提供的一種客戶(hù)端與WEB服務(wù)端的交互方法及系統(tǒng),通過(guò)WEB 服務(wù)端預(yù)先給客戶(hù)端分配客戶(hù)端記號(hào),并對(duì)客戶(hù)端上的系統(tǒng)平臺(tái)分配平臺(tái)編號(hào),將所述客 戶(hù)端記號(hào)與所述平臺(tái)編號(hào)對(duì)應(yīng)關(guān)聯(lián);所述系統(tǒng)平臺(tái)接收用戶(hù)所請(qǐng)求的WEB服務(wù);所述客戶(hù) 端根據(jù)所述客戶(hù)端記號(hào)和平臺(tái)編號(hào)加密形成第一簽名串,并在用戶(hù)所請(qǐng)求的WEB服務(wù)對(duì)應(yīng) 的請(qǐng)求URL中加入所述第一簽名串和平臺(tái)編號(hào);所述系統(tǒng)平臺(tái)將帶有所述第一簽名串和平 臺(tái)編號(hào)的請(qǐng)求URL發(fā)送至WEB服務(wù)端;所述WEB服務(wù)端從帶有所述第一簽名串和平臺(tái)編號(hào) 的請(qǐng)求URL中分離出第一簽名串,并根據(jù)所述平臺(tái)編號(hào)及其對(duì)應(yīng)關(guān)聯(lián)的客戶(hù)端記號(hào)加密形 成第二簽名串;判斷所述第一簽名串與第二簽名串是否相同,若是,則所述WEB服務(wù)端根據(jù) 所述請(qǐng)求URL返回所述WEB服務(wù)對(duì)應(yīng)的WEB服務(wù)結(jié)果至所述系統(tǒng)平臺(tái);通過(guò)將預(yù)先給客戶(hù) 端分配客戶(hù)端記號(hào)和對(duì)客戶(hù)端上的系統(tǒng)平臺(tái)分配平臺(tái)編號(hào)加密生成第一簽名串,并拼接入 WEB服務(wù)對(duì)應(yīng)的請(qǐng)求URL中,驗(yàn)簽通過(guò)的請(qǐng)求URL,WEB服務(wù)端根據(jù)URL中的參數(shù)把結(jié)果返 回給調(diào)用的系統(tǒng)平臺(tái),所述系統(tǒng)平臺(tái)根據(jù)各自的應(yīng)用需要給用戶(hù)呈現(xiàn)WEB服務(wù)結(jié)果,使得 客戶(hù)端與WEB服務(wù)端的數(shù)據(jù)交互安全性大大提高,通過(guò)生成簽名串并驗(yàn)證實(shí)現(xiàn)了客戶(hù)端與 WEB服務(wù)端交互的安全控制,通過(guò)軟件實(shí)現(xiàn),成本較低,給用戶(hù)帶來(lái)了大大的方便。
[0040] 應(yīng)當(dāng)理解的是,本發(fā)明的應(yīng)用不限于上述的舉例,對(duì)本領(lǐng)域普通技術(shù)人員來(lái)說(shuō),可 以根據(jù)上述說(shuō)明加以改進(jìn)或變換,所有這些改進(jìn)和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保 護(hù)范圍。
【權(quán)利要求】
1. 一種客戶(hù)端與WEB服務(wù)端的交互方法,其特征在于,包括以下步驟: A、 WEB服務(wù)端預(yù)先給客戶(hù)端分配客戶(hù)端記號(hào),并對(duì)客戶(hù)端上的系統(tǒng)平臺(tái)分配平臺(tái)編號(hào), 將所述客戶(hù)端記號(hào)與所述平臺(tái)編號(hào)對(duì)應(yīng)關(guān)聯(lián); B、 所述系統(tǒng)平臺(tái)接收用戶(hù)所請(qǐng)求的WEB服務(wù); C、 所述客戶(hù)端根據(jù)所述客戶(hù)端記號(hào)和平臺(tái)編號(hào)加密形成第一簽名串,并在用戶(hù)所請(qǐng)求 的WEB服務(wù)對(duì)應(yīng)的請(qǐng)求URL中加入所述第一簽名串和平臺(tái)編號(hào); D、 所述系統(tǒng)平臺(tái)將帶有所述第一簽名串和平臺(tái)編號(hào)的請(qǐng)求URL發(fā)送至WEB服務(wù)端; E、 所述WEB服務(wù)端從帶有所述第一簽名串和平臺(tái)編號(hào)的請(qǐng)求URL中分離出第一簽名 串,并根據(jù)所述平臺(tái)編號(hào)及其對(duì)應(yīng)關(guān)聯(lián)的客戶(hù)端記號(hào)加密形成第二簽名串; F、 判斷所述第一簽名串與第二簽名串是否相同,若是,則所述WEB服務(wù)端根據(jù)所述請(qǐng) 求URL返回所述WEB服務(wù)對(duì)應(yīng)的WEB服務(wù)結(jié)果至所述系統(tǒng)平臺(tái)。
2. 根據(jù)權(quán)利要求1所述的客戶(hù)端與WEB服務(wù)端的交互方法,其特征在于,所述步驟C具 體包括: C1、客戶(hù)端根據(jù)所述客戶(hù)端記號(hào)和平臺(tái)編號(hào)經(jīng)過(guò)MD5加密形成第一簽名串; C2、將所述第一簽名串和平臺(tái)編號(hào)拼接到用戶(hù)所請(qǐng)求的WEB服務(wù)對(duì)應(yīng)的請(qǐng)求URL上。
3. 根據(jù)權(quán)利要求1所述的客戶(hù)端與WEB服務(wù)端的交互方法,其特征在于,所述步驟F具 體包括: F1、所述WEB服務(wù)端根據(jù)所述請(qǐng)求URL返回所述WEB服務(wù)對(duì)應(yīng)的json數(shù)據(jù)或html頁(yè) 面至所述系統(tǒng)平臺(tái)。
4. 根據(jù)權(quán)利要求1所述的客戶(hù)端與WEB服務(wù)端的交互方法,其特征在于,所述步驟C還 包括: C3、在用戶(hù)所請(qǐng)求的WEB服務(wù)對(duì)應(yīng)的請(qǐng)求URL中加入時(shí)間戳。
5. 根據(jù)權(quán)利要求4所述的客戶(hù)端與WEB服務(wù)端的交互方法,其特征在于,所述步驟F還 包括: F2、判斷WEB服務(wù)端接收所述請(qǐng)求URL時(shí)的時(shí)間與所述請(qǐng)求URL中的時(shí)間戳的時(shí)間差 是否超過(guò)時(shí)間閾值,當(dāng)所述時(shí)間差沒(méi)有超過(guò)時(shí)間閾值時(shí),則所述WEB服務(wù)端根據(jù)所述請(qǐng)求 URL返回所述WEB服務(wù)對(duì)應(yīng)的WEB服務(wù)結(jié)果至所述系統(tǒng)平臺(tái)。
6. -種客戶(hù)端與WEB服務(wù)端的交互系統(tǒng),其特征在于,包括:客戶(hù)端和WEB服務(wù)端; 所述客戶(hù)端包括: 接收模塊,用于通過(guò)系統(tǒng)平臺(tái)接收用戶(hù)所請(qǐng)求的WEB服務(wù); 請(qǐng)求URL生成模塊,用于根據(jù)所述客戶(hù)端記號(hào)和平臺(tái)編號(hào)加密形成第一簽名串,并在 用戶(hù)所請(qǐng)求的WEB服務(wù)對(duì)應(yīng)的請(qǐng)求URL中加入所述第一簽名串和平臺(tái)編號(hào); 請(qǐng)求URL發(fā)送模塊,用于通過(guò)系統(tǒng)平臺(tái)將帶有所述第一簽名串和平臺(tái)編號(hào)的請(qǐng)求URL 發(fā)送至WEB服務(wù)端; 所述WEB服務(wù)端包括: 預(yù)先標(biāo)記模塊,用于預(yù)先給客戶(hù)端分配客戶(hù)端記號(hào),并對(duì)客戶(hù)端上的系統(tǒng)平臺(tái)分配平 臺(tái)編號(hào),將所述客戶(hù)端記號(hào)與所述平臺(tái)編號(hào)對(duì)應(yīng)關(guān)聯(lián); 簽名串分離及生成模塊,用于從帶有所述第一簽名串和平臺(tái)編號(hào)的請(qǐng)求URL中分離出 第一簽名串,并根據(jù)所述平臺(tái)編號(hào)及其對(duì)應(yīng)關(guān)聯(lián)的客戶(hù)端記號(hào)加密形成第二簽名串; 簽名串對(duì)比模塊,用于判斷所述第一簽名串與第二簽名串是否相同,若是,則所述WEB 服務(wù)端根據(jù)所述請(qǐng)求URL返回所述WEB服務(wù)對(duì)應(yīng)的WEB服務(wù)結(jié)果至所述系統(tǒng)平臺(tái)。
7. 根據(jù)權(quán)利要求6所述的客戶(hù)端與WEB服務(wù)端的交互系統(tǒng),其特征在于,所述請(qǐng)求URL 生成模塊包括: 第一簽名串生成單元,用于客戶(hù)端根據(jù)所述客戶(hù)端記號(hào)和平臺(tái)編號(hào)經(jīng)過(guò)MD5加密形成 第一簽名串; 請(qǐng)求URL生成單元,用于將所述第一簽名串和平臺(tái)編號(hào)拼接到用戶(hù)所請(qǐng)求的WEB服務(wù) 對(duì)應(yīng)的請(qǐng)求URL上。
8. 根據(jù)權(quán)利要求6所述的客戶(hù)端與WEB服務(wù)端的交互系統(tǒng),其特征在于,所述簽名串對(duì) 比模塊用于判斷所述第一簽名串與第二簽名串是否相同,若為是,則所述WEB服務(wù)端根據(jù) 所述請(qǐng)求URL返回所述WEB服務(wù)對(duì)應(yīng)的json數(shù)據(jù)或html頁(yè)面至所述系統(tǒng)平臺(tái)。
9. 根據(jù)權(quán)利要求6所述的客戶(hù)端與WEB服務(wù)端的交互系統(tǒng),其特征在于,所述請(qǐng)求URL 生成模塊包括: 時(shí)間加入單元,用于在用戶(hù)所請(qǐng)求的WEB服務(wù)對(duì)應(yīng)的請(qǐng)求URL中加入時(shí)間戳。
10. 根據(jù)權(quán)利要求9所述的客戶(hù)端與WEB服務(wù)端的交互系統(tǒng),其特征在于,所述簽名串 對(duì)比模塊包括: 時(shí)間對(duì)比單元,用于判斷WEB服務(wù)端接收所述請(qǐng)求URL時(shí)的時(shí)間與所述請(qǐng)求URL中的 時(shí)間戳的時(shí)間差是否超過(guò)時(shí)間閾值,當(dāng)所述時(shí)間差沒(méi)有超過(guò)時(shí)間閾值時(shí),則所述WEB服務(wù) 端根據(jù)所述請(qǐng)求URL返回所述WEB服務(wù)對(duì)應(yīng)的WEB服務(wù)結(jié)果至所述系統(tǒng)平臺(tái)。
【文檔編號(hào)】H04L29/08GK104144161SQ201410322010
【公開(kāi)日】2014年11月12日 申請(qǐng)日期:2014年7月8日 優(yōu)先權(quán)日:2014年7月8日
【發(fā)明者】陳熾昌, 莫?jiǎng)Ρ? 崔勇, 闞長(zhǎng)鑫, 黎卓章 申請(qǐng)人:北京彩云動(dòng)力教育科技有限公司