保護web頁面可執(zhí)行腳本的方法
【專利摘要】為了解決不能持久有效保護WEB頁面中可執(zhí)行腳本的知識產(chǎn)權(quán)問題,本發(fā)明提供了一種保護WEB頁面可執(zhí)行腳本的方法。保護WEB頁面可執(zhí)行腳本的方法其特征在于包括如下步驟:在服務(wù)器腳本建立SESSION,并在SESSION中建立至少一個標識項;在瀏覽器產(chǎn)生HTML頁面的腳本中調(diào)用服務(wù)器可執(zhí)行腳本的請求中需包括與步驟A中的標識項對應(yīng)的描述;服務(wù)器腳本接收到HTML頁面調(diào)用可執(zhí)行腳本的請求后核實所述請求中包括與步驟A中的標識項對應(yīng)的描述后,服務(wù)器腳本調(diào)取可執(zhí)行腳本內(nèi)容輸出給瀏覽器HTML頁面。采用本發(fā)明的方法可以有效保護WEB頁面中可執(zhí)行腳本的知識產(chǎn)權(quán)。
【專利說明】保護WEB頁面可執(zhí)行腳本的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于一種因特網(wǎng)通信技術(shù),特別是一種客戶端瀏覽器和WEB服務(wù)器之間傳遞可執(zhí)行腳本的方法。
【背景技術(shù)】
[0002]目前,客戶端瀏覽器的工作機制多是將HTML文件下載到本地后執(zhí)行,操作者才能看到頁面。HTML文件中的可執(zhí)行腳本常常是用JavaScript或VBScript等解釋性語言編寫的程序代碼,瀏覽器載入可執(zhí)行腳本后,操作瀏覽器的人可以很容易地得到這些可執(zhí)行腳本,可執(zhí)行腳本的知識產(chǎn)權(quán)很容易被侵犯。雖然相關(guān)廠商提供了一些在服務(wù)器端加密/在客戶端解密的技術(shù),例如微軟提供的Encode技術(shù),但對應(yīng)這些加密方法的破解程序不斷產(chǎn)生,使得現(xiàn)有的加密方法都不能持久有效地保證可執(zhí)行腳本的知識產(chǎn)權(quán)不被侵犯。
【發(fā)明內(nèi)容】
[0003]為了解決不能持久有效保護WEB頁面中可執(zhí)行腳本的知識產(chǎn)權(quán)問題,本發(fā)明提供了一種保護WEB頁面可執(zhí)行腳本的方法。
[0004]本發(fā)明的技術(shù)方案如下:
[0005]保護WEB頁面可執(zhí)行腳本的方法包括如下步驟:
[0006]A在服務(wù)器腳本建立SESS1N,并在SESS1N中建立至少一個標識項;
[0007]B在瀏覽器產(chǎn)生HTML頁面的腳本中調(diào)用服務(wù)器可執(zhí)行腳本的請求中需包括與步驟A中的標識項對應(yīng)的描述;
[0008]C服務(wù)器腳本接收到HTML頁面調(diào)用可執(zhí)行腳本的請求后核實所述請求中是否包括與步驟A中的標識項對應(yīng)的描述,若不包括則執(zhí)行出錯處置程序,所述出錯處置程序包括銷毀SESS1N中的標識項;
[0009]D在步驟C得到肯定的結(jié)果后,服務(wù)器腳本調(diào)用可執(zhí)行腳本并輸出給瀏覽器HTML頁面;
[0010]E服務(wù)器腳本在接收到步驟B中調(diào)用服務(wù)器可執(zhí)行腳本的請求后一定時間,服務(wù)器腳本銷毀SESS1N中的標識項。
[0011]步驟A中所述標識項為數(shù)據(jù)項,所述數(shù)據(jù)項具有特定值。
[0012]步驟B中與步驟A中的標識項對應(yīng)的描述是指調(diào)用服務(wù)器可執(zhí)行腳本的請求中設(shè)定有與所述數(shù)據(jù)項和特定值相等的符號。
[0013]本發(fā)明的技術(shù)效果:
[0014]采用本發(fā)明的方法,可執(zhí)行腳本文件的地址只在服務(wù)器端腳本出現(xiàn),沒有在瀏覽器下載的文件中出現(xiàn),使得從瀏覽器無法獲知可執(zhí)行代碼的地址。盡管可執(zhí)行腳本的內(nèi)容被瀏覽器下載并執(zhí)行,但由于該內(nèi)容是動態(tài)輸出,不是一個完整的文件,因此瀏覽器不會緩存該內(nèi)容,只在內(nèi)存中執(zhí)行該內(nèi)容,因此從瀏覽器端是無法看到可執(zhí)行腳本的內(nèi)容的。
[0015]另外,盡管從瀏覽器端的HTML頁面腳本中會看到請求獲取可執(zhí)行腳本的代碼語句,但該代碼語句在執(zhí)行后,服務(wù)器端接收到該請求后一段時間不論請求是否成功,均會銷毀SESS1N中的標識項,因此,即使復(fù)制該請求語句中的地址信息訪問服務(wù)器,因為SESS1N中的標識項已經(jīng)不存在,從而不能獲得可執(zhí)行腳本文件內(nèi)容。
[0016]第三,由于SESS1N只對合法的同組瀏覽器窗口有效,如果采用某種方法禁止上述請求語句的執(zhí)行,然后使用該語句中的地址信息訪問服務(wù)器,也會因為SESS1N不存在而不能獲得可執(zhí)行腳本的內(nèi)容。
【專利附圖】
【附圖說明】
[0017]圖1為本發(fā)明方法的流程圖。
【具體實施方式】
[0018]下面結(jié)合附圖對本發(fā)明的技術(shù)方案進行詳細地說明。
[0019]第一,需要在服務(wù)器端建立SESS1N,并在SESS1N中建立標識項page,page被賦予一個值。該標識項及標識項的值可以是任意的,例如標識項的名稱可以是HTML頁面的文件名,其值可以采用一個隨機值(如當前的時間)。以PHP為例,實現(xiàn)上述目的的代碼如下:
[0020]$_SESS10N[ ‘page,] = ‘xxxxxxxx,;
[0021]其中,“page”是為數(shù)據(jù)項定義的名稱,而“xxxxxxxx”是為數(shù)據(jù)項賦的值。
[0022]第二,在瀏覽器產(chǎn)生HTML頁面的腳本中調(diào)用服務(wù)器可執(zhí)行腳本的請求中包括對應(yīng)page項的內(nèi)容。下面以PHP的GET方法為例說明這一段的腳本形式:
[0023]〈SCRIPTtype = text/javascriptsrc =,,getjs.php ? index = page&page =xxxxxxxx,,>
[0024]其中,“getjs.php”是一個專門建立的動態(tài)輸出Javascript代碼的服務(wù)器腳本,“index”也是一個任意的名字?!皃age”是在第一步中指定的SESS1N中標識項的名稱,而“xxxxxxxx”是在第一步中為page賦的值。
[0025]這樣,當瀏覽器獲得HTML頁面后,將按照地址“getjs.php ? index = page&page=xxxxxxxx”向服務(wù)器請求獲得所需要的腳本。
[0026]第三,服務(wù)器接收到瀏覽器請求后于適當時間后(在本實施例中是2秒后)銷毀SESS1N中的page標識項。
[0027]第四,服務(wù)器接收到瀏覽器請求后判斷該請求是否是由合法的瀏覽器(合法的瀏覽器品牌和版本)發(fā)出,是否是本站的域名下的頁面提交的請求。如果不符合前述判斷結(jié)論為不會法,則報錯退出或采取任何其它自定義的出錯處理程序。
[0028]第五,在第四的判斷為合法的情況下,則檢查請求中是否包括“index”。如果請求中沒有包括“index”,則報錯退出或采取任何其它自定義的出錯處理程序。
[0029]第六,在第五的判斷為包括了 “index”情況下,則判斷index是否包括了 “page”項,如果沒有包括“page”,采取出錯控制動作,這種情況下要立即銷毀SESS1N中名為“page”的數(shù)據(jù)項。這樣可以避免“page”的存在使得從非法瀏覽器端可以獲得后續(xù)的可執(zhí)行腳本程序內(nèi)容。
[0030]第七,在第六的判斷為包括“page”項情況下,判斷page項的值是否與SESS1N中page的值相同,如果不相同,采取出錯控制動作,這種情況下要立即銷毀SESS1N中名為“page”的數(shù)據(jù)項。
[0031]第八,在第七的判斷為page值相同情況下,銷毀SESS1N中名為“page”的標識項,然后打開服務(wù)器中對應(yīng)的可執(zhí)行腳本文件,在這里就是javascript, js,將該文件中的內(nèi)容全部讀出來并輸出給發(fā)出請求的瀏覽器。這樣,瀏覽器就獲得了完整的腳本代碼,執(zhí)行后所有功能都可以正常完成了。
[0032]傳統(tǒng)的引用一個名稱為javascript, js的可執(zhí)行腳本的代碼如下:
[0033]〈SCRIPTtype = text/javascriptsrc =,,javascript.js,,>
[0034]其中,“javascript, js”是頁面要引用的腳本代碼地址(可能是帶路徑的),也就是要保護的可執(zhí)行腳本文件。從瀏覽器端可以看到可執(zhí)行腳本文件的地址,因此可執(zhí)行腳本文件很容易被復(fù)制并非法利用。
[0035]本發(fā)明的方法中可執(zhí)行腳本文件的地址只在服務(wù)器端腳本出現(xiàn),沒有在瀏覽器下載的文件中出現(xiàn),使得從瀏覽器無法獲知可執(zhí)行代碼的地址。盡管可執(zhí)行腳本的內(nèi)容被瀏覽器下載并執(zhí)行,但由于該內(nèi)容是動態(tài)輸出,不是一個完整的文件,因此瀏覽器不會緩存該內(nèi)容,只在內(nèi)存中執(zhí)行該內(nèi)容,因此從瀏覽器端是無法看到可執(zhí)行腳本的內(nèi)容的。
[0036]應(yīng)當指出,以上所述【具體實施方式】可以使本領(lǐng)域的技術(shù)人員更全面地理解本發(fā)明,但不以任何方式限制本發(fā)明。因此,盡管本說明書參照實施方式對本發(fā)明已進行了詳細的說明,但是,本領(lǐng)域技術(shù)人員應(yīng)當理解,仍然可以對本發(fā)明進行修改或者等同替換;而一切不脫離本發(fā)明的精神和技術(shù)實質(zhì)的技術(shù)方案及其改進,其均應(yīng)涵蓋在本發(fā)明專利的保護范圍當中。
【權(quán)利要求】
1.保護WEB頁面可執(zhí)行腳本的方法其特征在于包括如下步驟: A在服務(wù)器腳本建立SESS1N,并在SESS1N中建立至少一個標識項; B在瀏覽器產(chǎn)生HTML頁面的腳本中調(diào)用服務(wù)器可執(zhí)行腳本的請求中需包括與步驟A中的標識項對應(yīng)的描述; C服務(wù)器腳本接收到HTML頁面調(diào)用可執(zhí)行腳本的請求后核實所述請求中是否包括與步驟A中的標識項對應(yīng)的描述,若不包括則執(zhí)行出錯處置程序,所述出錯處置程序包括銷毀SESS1N中的標識項; D在步驟C得到肯定的結(jié)果后,服務(wù)器腳本調(diào)取可執(zhí)行腳本內(nèi)容輸出給瀏覽器HTML頁面; E服務(wù)器腳本在接收到步驟B中調(diào)用服務(wù)器可執(zhí)行腳本的請求后一定時間,服務(wù)器腳本銷毀SESS1N中的標識項。
2.根據(jù)權(quán)利要求1所述的保護WEB頁面可執(zhí)行腳本的方法,其特征在于步驟A中所述標識項為數(shù)據(jù)項,所述數(shù)據(jù)項具有特定值。
3.根據(jù)權(quán)利要求2所述的保護WEB頁面可執(zhí)行腳本的方法,其特征在于步驟B中與步驟A中的標識項對應(yīng)的描述是指調(diào)用服務(wù)器可執(zhí)行腳本的請求中設(shè)定有與所述數(shù)據(jù)項和特定值相等的符號。
【文檔編號】G06F21/62GK104182700SQ201410427934
【公開日】2014年12月3日 申請日期:2014年8月27日 優(yōu)先權(quán)日:2013年12月12日
【發(fā)明者】施霞虹 申請人:南寧市磁匯科技有限公司