本發(fā)明涉及瀏覽器
技術(shù)領(lǐng)域:
,尤其涉及跨站攻擊解決方法、移動(dòng)終端及存儲(chǔ)介質(zhì)。
背景技術(shù):
:跨站腳本攻擊(crosssitescripting,xss)是一種利用web網(wǎng)頁漏洞的網(wǎng)絡(luò)攻擊方式。攻擊終端采用在web網(wǎng)頁中輸入包含惡意代碼的信息的方式,向應(yīng)用服務(wù)器中的應(yīng)用程序發(fā)送包含惡意代碼的訪問請(qǐng)求,使得該應(yīng)用程序在接收該訪問請(qǐng)求之后生成一個(gè)包含惡意代碼的web網(wǎng)頁,從而在web網(wǎng)頁中插入惡意代碼。當(dāng)用戶終端打開該web網(wǎng)頁時(shí),執(zhí)行該web網(wǎng)頁中的惡意代碼,該惡意代碼往往用于實(shí)現(xiàn)從用戶終端惡意盜取信息等網(wǎng)絡(luò)攻擊行為,從而攻擊終端完成對(duì)用戶終端的網(wǎng)絡(luò)攻擊,針對(duì)跨站腳本漏洞,目前常用的解決方法是通過硬編碼來過濾特殊字符從而得到文件解決,但是這種做法有很大的弊端,就是涉及的頁面比較多,工作量非常大,而且沒有統(tǒng)一的寫法,維護(hù)起來也非?;靵y。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的主要目的在于提出一種跨站攻擊解決方法、移動(dòng)終端及存儲(chǔ)介質(zhì),旨在解決跨站腳本攻擊漏洞的問題。為實(shí)現(xiàn)上述目的,本發(fā)明提供的一種跨站攻擊解決方法,所述方法包括步驟:接收輸入的數(shù)據(jù);判斷是否開啟數(shù)據(jù)轉(zhuǎn)義功能;若是,則獲取鼠標(biāo)的操作事件;根據(jù)標(biāo)簽綁定的操作事件,對(duì)所述輸入的數(shù)據(jù)進(jìn)行轉(zhuǎn)義;輸出轉(zhuǎn)義后的數(shù)據(jù)??蛇x地,在所述接收輸入的數(shù)據(jù)之前,所述方法還包括:生成自定義標(biāo)簽。可選地,所述生成自定義標(biāo)簽,包括:設(shè)置自定義標(biāo)簽類;創(chuàng)建標(biāo)簽庫描述文件;加載所述標(biāo)簽庫描述文件;在服務(wù)器頁面的頭部引入所述標(biāo)簽庫。可選地,所述設(shè)置自定義標(biāo)簽類,包括:為所述標(biāo)簽綁定至少一個(gè)事件;對(duì)所述標(biāo)簽屬性進(jìn)行賦值??蛇x地,所述對(duì)所述數(shù)據(jù)進(jìn)行轉(zhuǎn)義,包括:判斷所述輸入的數(shù)據(jù)是否包含預(yù)設(shè)字符;若是,則返回轉(zhuǎn)義后的數(shù)據(jù);若否,則返回與所述輸入的數(shù)據(jù)對(duì)應(yīng)的結(jié)果??蛇x地,當(dāng)判斷未開啟數(shù)據(jù)轉(zhuǎn)義功能時(shí),則輸出與所述輸入的數(shù)據(jù)對(duì)應(yīng)的結(jié)果。可選地,所述操作事件包括支持鼠標(biāo)事件、獲取焦點(diǎn)事件、失去焦點(diǎn)事件、點(diǎn)擊事件??蛇x地,所述方法還包括:顯示所述轉(zhuǎn)義后的數(shù)據(jù);或者,隱藏所述轉(zhuǎn)義后的數(shù)據(jù),并顯示提示框。此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提出一種移動(dòng)終端,所述移動(dòng)終端包括處理器、存儲(chǔ)器,所述處理器用于執(zhí)行存儲(chǔ)器中存儲(chǔ)的跨站攻擊解決程序,以實(shí)現(xiàn)上述的方法。此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提出一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有一個(gè)或者多個(gè)程序,所述一個(gè)或者多個(gè)程序可被一個(gè)或者多個(gè)處理器執(zhí)行,以實(shí)現(xiàn)上述的方法。本發(fā)明提出的跨站攻擊解決方法、移動(dòng)終端及存儲(chǔ)介質(zhì),通過接收輸入的數(shù)據(jù),當(dāng)判斷開啟數(shù)據(jù)轉(zhuǎn)義功能時(shí),獲取鼠標(biāo)的操作事件,并根據(jù)標(biāo)簽綁定的操作事件,對(duì)所述輸入的數(shù)據(jù)進(jìn)行轉(zhuǎn)義,進(jìn)而輸出轉(zhuǎn)義后的數(shù)據(jù),對(duì)于包含惡意字符的輸入數(shù)據(jù)來說,由于對(duì)該輸入數(shù)據(jù)進(jìn)行了轉(zhuǎn)義,惡意字符被轉(zhuǎn)義為瀏覽器不能執(zhí)行的代碼,這就避免了有心之人通過惡意字符獲取用戶的個(gè)人資料等信息,高效地解決了跨站攻擊問題,通過對(duì)轉(zhuǎn)義規(guī)則進(jìn)行更新和升級(jí),使得維護(hù)和擴(kuò)展起來十分靈活和方便,提高了瀏覽器的安全性,保障了用戶的權(quán)益。附圖說明圖1為本發(fā)明第一實(shí)施例提供的跨站攻擊解決方法的流程示意圖;圖2為本發(fā)明第一實(shí)施例提供的跨站攻擊解決方法的子流程示意圖;圖3為本發(fā)明第二實(shí)施例提供的跨站攻擊解決方法的流程示意圖;圖4為本發(fā)明第二實(shí)施例提供的跨站攻擊解決方法的子流程示意圖;圖5為本發(fā)明第三實(shí)施例提供的跨站攻擊解決方法的流程示意圖;圖6為本發(fā)明第四實(shí)施例提供的移動(dòng)終端框圖。本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說明。具體實(shí)施方式應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明?,F(xiàn)在將參考附圖描述實(shí)現(xiàn)本發(fā)明各個(gè)實(shí)施例的智能終端。在后續(xù)的描述中,使用用于表示元件的諸如“模塊”、“部件”或“單元”的后綴僅為了有利于本發(fā)明的說明,其本身并沒有特定的意義。因此,"模塊"與"部件"可以混合地使用。請(qǐng)參照?qǐng)D1,為本發(fā)明第一實(shí)施例提供的跨站攻擊解決方法,所述方法包括步驟:步驟110,接收輸入的數(shù)據(jù)。具體地,接收用戶在瀏覽器的文本框輸入的數(shù)據(jù)。示例性地,該數(shù)據(jù)可以是用戶名、密碼、域名等。進(jìn)一步地,本實(shí)施例中的瀏覽器為終端上的瀏覽器。終端可以以各種形式來實(shí)施。例如,本發(fā)明中描述的終端可以包括諸如移動(dòng)電話、智能電話、筆記本電腦、數(shù)字廣播接收器、pda(個(gè)人數(shù)字助理)、pad(平板電腦)、pmp(便攜式多媒體播放器)、導(dǎo)航裝置等等的移動(dòng)終端以及諸如數(shù)字tv、臺(tái)式計(jì)算機(jī)等等的固定終端。步驟120,判斷是否開啟數(shù)據(jù)轉(zhuǎn)義功能。若是,則進(jìn)入步驟130,若否,則進(jìn)入步驟150。具體地,先根據(jù)方法參數(shù)判斷是否需要轉(zhuǎn)義,如果需要轉(zhuǎn)義,進(jìn)入步驟130;如果不需要轉(zhuǎn)義,則進(jìn)入步驟150。步驟130,根據(jù)標(biāo)簽綁定的操作事件,對(duì)所述輸入的數(shù)據(jù)進(jìn)行轉(zhuǎn)義。具體地,根據(jù)實(shí)際需要將標(biāo)簽綁定不同的操作事件,綁定的事件可以是支持鼠標(biāo)事件、獲取焦點(diǎn)事件、失去焦點(diǎn)事件、點(diǎn)擊事件等等,支持的事件可以查看w3網(wǎng)站元素事件列表。請(qǐng)參照?qǐng)D2,步驟130進(jìn)一步包括:步驟210,判斷所述輸入的數(shù)據(jù)是否包含預(yù)設(shè)字符。若是,則進(jìn)入步驟220,若否,則進(jìn)入步驟230。具體地,通常情況下,用戶在使用瀏覽器時(shí),輸入的是字母和數(shù)字這類的字符,也就認(rèn)為字符和數(shù)字的字符是善意字符,從而在設(shè)置預(yù)設(shè)的字符時(shí),認(rèn)為特殊字符是惡意字符。例如:<、>、"、‘、’、(空格)等。當(dāng)判斷用戶輸入的數(shù)據(jù)包括特殊字符,則認(rèn)為輸入的數(shù)據(jù)中包含惡意字符,并進(jìn)入步驟220,若不包括特殊字符,則進(jìn)入步驟230。在本實(shí)施例中,采用上述方法設(shè)置惡意字符,在其他實(shí)施例中,還可以設(shè)置其他單一字符或者組合字符作為惡意字符,本申請(qǐng)?jiān)诖瞬蛔鼍唧w限制。步驟220,返回轉(zhuǎn)義后的數(shù)據(jù)。具體地,若判斷用戶輸入的數(shù)據(jù)包含預(yù)設(shè)的字符,則按照預(yù)設(shè)的轉(zhuǎn)義規(guī)則對(duì)特殊字符進(jìn)行轉(zhuǎn)義,也就是說,當(dāng)判斷輸入的數(shù)據(jù)包含預(yù)設(shè)的特殊字符時(shí),則認(rèn)為出現(xiàn)了惡意字符,為了避免執(zhí)行惡意字符的操作結(jié)果,就需要對(duì)輸入的數(shù)據(jù)進(jìn)行轉(zhuǎn)義,生成不能被執(zhí)行的編碼,以起到了解決跨網(wǎng)站攻擊的效果。轉(zhuǎn)義對(duì)照表如表1所示。表1轉(zhuǎn)義前的字符轉(zhuǎn)義后的字符<<>>&&""(空格) 通過表1中的轉(zhuǎn)義規(guī)則,當(dāng)識(shí)別到包含預(yù)設(shè)字符的輸入數(shù)據(jù)時(shí),自動(dòng)將輸入的數(shù)據(jù)轉(zhuǎn)義為非執(zhí)行的編碼并顯示轉(zhuǎn)換后的文本內(nèi)容,避免了執(zhí)行惡意代碼為用戶的信息泄露。步驟230,返回與所述輸入的數(shù)據(jù)對(duì)應(yīng)的結(jié)果。具體地,若判斷用戶輸入的數(shù)據(jù)中沒有預(yù)設(shè)的字符,則認(rèn)為不存在惡意字符,進(jìn)而返回用戶輸入的數(shù)據(jù),并執(zhí)行相應(yīng)的代碼。步驟140,輸出轉(zhuǎn)義后的數(shù)據(jù)。具體地,根據(jù)轉(zhuǎn)義對(duì)照表1的轉(zhuǎn)義規(guī)則,將輸入的數(shù)據(jù)中帶有惡意字符的部分輸出轉(zhuǎn)義數(shù)據(jù),將輸入的數(shù)據(jù)中帶有善意字符的部分直接輸出,并執(zhí)行與輸入的數(shù)據(jù)對(duì)應(yīng)的結(jié)果。進(jìn)一步的,若輸入的數(shù)據(jù)中包含惡意字符,則根據(jù)設(shè)置,顯示轉(zhuǎn)義后的數(shù)據(jù)。進(jìn)一步的,若輸入的數(shù)據(jù)中包含惡意字符,則根據(jù)設(shè)置,隱藏轉(zhuǎn)義后的數(shù)據(jù),并顯示提示框,以提醒用戶重新輸入數(shù)據(jù)。這樣一來,一方面預(yù)防了因用戶不小心輸入了帶有惡意字符的數(shù)據(jù)時(shí),給用戶重新修改的機(jī)會(huì),另一方面杜絕了有心之人輸入惡意數(shù)據(jù)攻擊網(wǎng)站而引發(fā)的后果。步驟150,輸出與所述輸入的數(shù)據(jù)對(duì)應(yīng)的結(jié)果。也就是說,在該步驟中,由于未開啟數(shù)據(jù)轉(zhuǎn)義功能,即使輸入的數(shù)據(jù)包含惡意字符,也無法對(duì)輸入的數(shù)據(jù)進(jìn)行轉(zhuǎn)義,而是直接輸出并執(zhí)行與輸入數(shù)據(jù)對(duì)應(yīng)的結(jié)果。示例性地,以標(biāo)簽綁定的是失去焦點(diǎn)事件為例,對(duì)本發(fā)明的跨站攻擊解決方法作進(jìn)一步說明:步驟1,接收用戶a輸入的數(shù)據(jù)<script>window.location.href="xxxx";</script>;步驟2,在用戶輸入上述數(shù)據(jù)后,檢測到失去焦點(diǎn)事件;步驟3,判斷數(shù)據(jù)中包含特殊字符<、>、"等,則根據(jù)表1中的轉(zhuǎn)義對(duì)照表對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)義;步驟4,返回轉(zhuǎn)義后的數(shù)據(jù)為<;script>;window.location.href=";http://xxx";<;/script>;步驟5,在瀏覽器顯示對(duì)上述字符轉(zhuǎn)義后的文本內(nèi)容。本實(shí)施例的跨站攻擊解決方法,通過接收輸入的數(shù)據(jù),當(dāng)判斷開啟數(shù)據(jù)轉(zhuǎn)義功能時(shí),獲取鼠標(biāo)的操作事件,并根據(jù)標(biāo)簽綁定的操作事件,對(duì)所述輸入的數(shù)據(jù)進(jìn)行轉(zhuǎn)義,進(jìn)而輸出轉(zhuǎn)義后的數(shù)據(jù),對(duì)于包含惡意字符的輸入數(shù)據(jù)來說,由于對(duì)該輸入數(shù)據(jù)進(jìn)行了轉(zhuǎn)義,惡意字符被轉(zhuǎn)義為瀏覽器不能執(zhí)行的代碼,這就避免了有心之人通過惡意字符獲取用戶的個(gè)人資料等信息,高效地解決了跨站攻擊問題,通過對(duì)轉(zhuǎn)義規(guī)則進(jìn)行更新和升級(jí),使得維護(hù)和擴(kuò)展起來十分靈活和方便,提高了瀏覽器的安全性,保障了用戶的權(quán)益。請(qǐng)參照?qǐng)D3,本發(fā)明第二實(shí)施例進(jìn)一步提出一種跨站攻擊解決方法,所述方法包括步驟:步驟310,生成自定義標(biāo)簽。具體地,請(qǐng)參照?qǐng)D4,步驟310進(jìn)一步包括:步驟410,設(shè)置自定義標(biāo)簽類。具體地,先創(chuàng)建自定義標(biāo)簽類,該標(biāo)簽類通過重寫父類dostarttag或者doendtag來實(shí)現(xiàn)。例如,欲生成的標(biāo)簽是<html:inputtextisescape=”true”name=”username”id=”user_name”>,該標(biāo)簽以文本框的形式顯示在界面上,該標(biāo)簽可以是用戶名和密碼的文本框,其中,定義類全限定名為com.nubia.userdefinedtag,并封裝<inputtype=text/>標(biāo)簽,封裝該標(biāo)簽在dostattag方法中生成。步驟420,創(chuàng)建標(biāo)簽庫描述文件。具體地,創(chuàng)建標(biāo)簽庫文件主要是指定標(biāo)簽的名稱、指定標(biāo)簽的實(shí)現(xiàn)類、以及標(biāo)簽的屬性,其中,標(biāo)簽的名稱可以根據(jù)實(shí)際需要定義。示例性地,以標(biāo)簽<html:inputtextisescape=”true”name=”username”id=”user_name”>舉例。其中,標(biāo)簽名稱為:inputtext。標(biāo)簽實(shí)現(xiàn)類為:com.nubia.userdefinedtag。標(biāo)簽屬性為:isescape。步驟430,加載所述標(biāo)簽庫描述文件。具體地,在數(shù)據(jù)庫中的web.xml文件中配置標(biāo)簽庫文件,以便在瀏覽器啟動(dòng)后加載標(biāo)簽庫文件。步驟440,在服務(wù)器頁面的頭部引入所述標(biāo)簽庫。具體地,可以引入標(biāo)簽庫<%@tagliburi="/tld/web-html"prefix="html"%>。在頁面上就可以使用標(biāo)簽<html:inputtextisescape=”true”name=”username”id=”user_name”>。其中,isescape作為是否對(duì)輸入數(shù)據(jù)進(jìn)行轉(zhuǎn)義的方法參數(shù)。若需要轉(zhuǎn)義輸入數(shù)據(jù),則將isescape的值設(shè)置為true,不需要轉(zhuǎn)義就可以設(shè)置為false。步驟320,接收輸入的數(shù)據(jù)。步驟330,判斷是否開啟數(shù)據(jù)轉(zhuǎn)義功能。若是,則進(jìn)入步驟340,若否,則進(jìn)入步驟360。步驟340,根據(jù)標(biāo)簽綁定的操作事件,對(duì)所述輸入的數(shù)據(jù)進(jìn)行轉(zhuǎn)義。步驟350,輸出轉(zhuǎn)義后的數(shù)據(jù)。步驟360,輸出與所述輸入的數(shù)據(jù)對(duì)應(yīng)的結(jié)果。上述步驟320-360的內(nèi)容與步驟110-150的內(nèi)容相同,對(duì)于相同的內(nèi)容,本實(shí)施例則不再贅述。本實(shí)施例的跨站攻擊解決方法,通過預(yù)先生成自定義標(biāo)簽,從而根據(jù)自定義標(biāo)簽綁定的事件,對(duì)用戶輸入的數(shù)據(jù)進(jìn)行轉(zhuǎn)義。請(qǐng)參照?qǐng)D5,本發(fā)明第三實(shí)施例進(jìn)一步提出一種跨站攻擊解決方法。在第三實(shí)施例中,所述跨站攻擊解決方法是在第二實(shí)施例的基礎(chǔ)上所做出的進(jìn)一步改進(jìn),區(qū)別僅在于,所述設(shè)置自定義標(biāo)簽類,包括如下步驟:步驟510,為標(biāo)簽綁定至少一個(gè)事件。具體地,以<html:inputtextisescape=”true”name=”username”id=”user_name”>舉例。首先,給原始標(biāo)簽:inputtype=text綁定事件,比如綁定的是焦點(diǎn)失去事件,那么處理后的標(biāo)簽就是<inputtype=”text”onfocusout=”invokeesacpe(isescape)”>。步驟520,對(duì)所述標(biāo)簽屬性進(jìn)行賦值。具體地,還是以<html:inputtextisescape=”true”name=”username”id=”user_name”>舉例。根據(jù)<html:inputtextisescape=”true”name=”username”id=”user_name”>標(biāo)簽中的屬性生成標(biāo)簽,屬性name、id都是inputtype=text固有的屬性,只需要把屬性值設(shè)置到原始標(biāo)簽屬性上即可,則處理后的標(biāo)簽是<inputtype=”text”name=”username”id=”user_name”onfocusout=”invokeesacpe(isescape)”>。本實(shí)施例的跨站攻擊解決方法,通過為標(biāo)簽綁定至少一個(gè)事件,并對(duì)標(biāo)簽屬性進(jìn)行賦值,以設(shè)置自定義標(biāo)簽。本實(shí)施例的跨站攻擊解決方法使用方便、用法簡單、擴(kuò)展簡單、且實(shí)現(xiàn)簡單,提高了整體的高效性和安全性。本申請(qǐng)第四實(shí)施例還提供了一種移動(dòng)終端,如圖6所示,該移動(dòng)終端包括處理器610以及存儲(chǔ)器620;所述處理器610用于執(zhí)行存儲(chǔ)器620中存儲(chǔ)的跨站攻擊解決程序,以實(shí)現(xiàn)以下步驟:接收輸入的數(shù)據(jù);判斷是否開啟數(shù)據(jù)轉(zhuǎn)義功能。若是,則根據(jù)標(biāo)簽綁定的操作事件,對(duì)所述輸入的數(shù)據(jù)進(jìn)行轉(zhuǎn)義并輸出轉(zhuǎn)義后的數(shù)據(jù)。若否,則輸出與所述輸入的數(shù)據(jù)對(duì)應(yīng)的結(jié)果。具體地,接收用戶在瀏覽器的文本框輸入的數(shù)據(jù)。示例性地,該數(shù)據(jù)可以是用戶名、密碼、域名等。進(jìn)一步地,本實(shí)施例中的瀏覽器為終端上的瀏覽器。終端可以以各種形式來實(shí)施。例如,本發(fā)明中描述的終端可以包括諸如移動(dòng)電話、智能電話、筆記本電腦、數(shù)字廣播接收器、pda(個(gè)人數(shù)字助理)、pad(平板電腦)、pmp(便攜式多媒體播放器)、導(dǎo)航裝置等等的移動(dòng)終端以及諸如數(shù)字tv、臺(tái)式計(jì)算機(jī)等等的固定終端。根據(jù)實(shí)際需要將標(biāo)簽綁定不同的操作事件,綁定的事件可以是支持鼠標(biāo)事件、獲取焦點(diǎn)事件、失去焦點(diǎn)事件、點(diǎn)擊事件等等,支持的事件可以查看w3網(wǎng)站元素事件列表。根據(jù)轉(zhuǎn)義對(duì)照表的轉(zhuǎn)義規(guī)則,將輸入的數(shù)據(jù)中帶有惡意字符的部分輸出轉(zhuǎn)義數(shù)據(jù),將輸入的數(shù)據(jù)中帶有善意字符的部分直接輸出,并執(zhí)行與輸入的數(shù)據(jù)對(duì)應(yīng)的結(jié)果。進(jìn)一步的,若輸入的數(shù)據(jù)中包含惡意字符,則根據(jù)設(shè)置,顯示轉(zhuǎn)義后的數(shù)據(jù)。進(jìn)一步的,若輸入的數(shù)據(jù)中包含惡意字符,則根據(jù)設(shè)置,隱藏轉(zhuǎn)義后的數(shù)據(jù),并顯示提示框,以提醒用戶重新輸入數(shù)據(jù)。這樣一來,一方面預(yù)防了因用戶不小心輸入了帶有惡意字符的數(shù)據(jù)時(shí),給用戶重新修改的機(jī)會(huì),另一方面杜絕了有心之人輸入惡意數(shù)據(jù)攻擊網(wǎng)站而引發(fā)的后果。由于未開啟數(shù)據(jù)轉(zhuǎn)義功能,即使輸入的數(shù)據(jù)包含惡意字符,也無法對(duì)輸入的數(shù)據(jù)進(jìn)行轉(zhuǎn)義,而是直接輸出并執(zhí)行與輸入數(shù)據(jù)對(duì)應(yīng)的結(jié)果??蛇x的,處理器610還用于執(zhí)行存儲(chǔ)器620中存儲(chǔ)的跨站攻擊解決程序,以實(shí)現(xiàn)以下步驟:判斷所述輸入的數(shù)據(jù)是否包含預(yù)設(shè)字符。若是,則返回轉(zhuǎn)義后的數(shù)據(jù),若否,則返回與所述輸入的數(shù)據(jù)對(duì)應(yīng)的結(jié)果。具體地,通常情況下,用戶在使用瀏覽器時(shí),輸入的是字母和數(shù)字這類的字符,也就認(rèn)為字符和數(shù)字的字符是善意字符,從而在設(shè)置預(yù)設(shè)的字符時(shí),認(rèn)為特殊字符是惡意字符。例如:<、>、"、‘、’、(空格)等。當(dāng)判斷用戶輸入的數(shù)據(jù)包括特殊字符,則認(rèn)為輸入的數(shù)據(jù)中包含惡意字符,并返回轉(zhuǎn)義后的數(shù)據(jù),若不包括特殊字符,則返回與所述輸入的數(shù)據(jù)對(duì)應(yīng)的結(jié)果。在本實(shí)施例中,采用上述方法設(shè)置惡意字符,在其他實(shí)施例中,還可以設(shè)置其他單一字符或者組合字符作為惡意字符,本申請(qǐng)?jiān)诖瞬蛔鼍唧w限制。也就是說,若判斷用戶輸入的數(shù)據(jù)包含預(yù)設(shè)的字符,則按照預(yù)設(shè)的轉(zhuǎn)義規(guī)則對(duì)特殊字符進(jìn)行轉(zhuǎn)義,亦即:當(dāng)判斷輸入的數(shù)據(jù)包含預(yù)設(shè)的特殊字符時(shí),則認(rèn)為出現(xiàn)了惡意字符,為了避免執(zhí)行惡意字符的操作結(jié)果,就需要對(duì)輸入的數(shù)據(jù)進(jìn)行轉(zhuǎn)義,生成不能被執(zhí)行的編碼,以起到了解決跨網(wǎng)站攻擊的效果。通過轉(zhuǎn)移對(duì)照表中的轉(zhuǎn)義規(guī)則,當(dāng)識(shí)別到包含預(yù)設(shè)字符的輸入數(shù)據(jù)時(shí),自動(dòng)將輸入的數(shù)據(jù)轉(zhuǎn)義為非執(zhí)行的編碼并顯示轉(zhuǎn)換后的文本內(nèi)容,避免了執(zhí)行惡意代碼為用戶的信息泄露。若判斷用戶輸入的數(shù)據(jù)中沒有預(yù)設(shè)的字符,則認(rèn)為不存在惡意字符,進(jìn)而返回用戶輸入的數(shù)據(jù),并執(zhí)行相應(yīng)的代碼??蛇x的,處理器610還用于執(zhí)行存儲(chǔ)器620中存儲(chǔ)的跨站攻擊解決程序,以實(shí)現(xiàn)以下步驟:生成自定義標(biāo)簽,具體包括:設(shè)置自定義標(biāo)簽類;創(chuàng)建標(biāo)簽庫描述文件;加載所述標(biāo)簽庫描述文件;在服務(wù)器頁面的頭部引入所述標(biāo)簽庫。具體地,先創(chuàng)建自定義標(biāo)簽類,該標(biāo)簽類通過重寫父類dostarttag或者doendtag來實(shí)現(xiàn)。例如,欲生成的標(biāo)簽是<html:inputtextisescape=”true”name=”username”id=”user_name”>,該標(biāo)簽以文本框的形式顯示在界面上,該標(biāo)簽可以是用戶名和密碼的文本框,其中,定義類全限定名為com.nubia.userdefinedtag,并封裝<inputtype=text/>標(biāo)簽,封裝該標(biāo)簽在dostattag方法中生成。創(chuàng)建標(biāo)簽庫文件主要是指定標(biāo)簽的名稱、指定標(biāo)簽的實(shí)現(xiàn)類、以及標(biāo)簽的屬性,其中,標(biāo)簽的名稱可以根據(jù)實(shí)際需要定義。示例性地,以標(biāo)簽<html:inputtextisescape=”true”name=”username”id=”user_name”>舉例。其中,標(biāo)簽名稱為:inputtext。標(biāo)簽實(shí)現(xiàn)類為:com.nubia.userdefinedtag。標(biāo)簽屬性為:isescape。進(jìn)一步的,在數(shù)據(jù)庫中的web.xml文件中配置標(biāo)簽庫文件,以便在瀏覽器啟動(dòng)后加載標(biāo)簽庫文件??梢砸霕?biāo)簽庫<%@tagliburi="/tld/web-html"prefix="html"%>。在頁面上就可以使用標(biāo)簽<html:inputtextisescape=”true”name=”username”id=”user_name”>。其中,isescape作為是否對(duì)輸入數(shù)據(jù)進(jìn)行轉(zhuǎn)義的方法參數(shù)。若需要轉(zhuǎn)義輸入數(shù)據(jù),則將isescape的值設(shè)置為true,不需要轉(zhuǎn)義就可以設(shè)置為false??蛇x的,處理器610還用于執(zhí)行存儲(chǔ)器620中存儲(chǔ)的跨站攻擊解決程序,以實(shí)現(xiàn)以下步驟:為標(biāo)簽綁定至少一個(gè)事件;對(duì)所述標(biāo)簽屬性進(jìn)行賦值。具體地,以<html:inputtextisescape=”true”name=”username”id=”user_name”>舉例。首先,給原始標(biāo)簽:inputtype=text綁定事件,比如綁定的是焦點(diǎn)失去事件,那么處理后的標(biāo)簽就是<inputtype=”text”onfocusout=”invokeesacpe(isescape)”>。根據(jù)<html:inputtextisescape=”true”name=”username”id=”user_name”>標(biāo)簽中的屬性生成標(biāo)簽,屬性name、id都是inputtype=text固有的屬性,只需要把屬性值設(shè)置到原始標(biāo)簽屬性上即可,則處理后的標(biāo)簽是<inputtype=”text”name=”username”id=”user_name”onfocusout=”invokeesacpe(isescape)”>。本實(shí)施例的移動(dòng)終端,通過接收輸入的數(shù)據(jù),當(dāng)判斷開啟數(shù)據(jù)轉(zhuǎn)義功能時(shí),獲取鼠標(biāo)的操作事件,并根據(jù)標(biāo)簽綁定的操作事件,對(duì)所述輸入的數(shù)據(jù)進(jìn)行轉(zhuǎn)義,進(jìn)而輸出轉(zhuǎn)義后的數(shù)據(jù),對(duì)于包含惡意字符的輸入數(shù)據(jù)來說,由于對(duì)該輸入數(shù)據(jù)進(jìn)行了轉(zhuǎn)義,惡意字符被轉(zhuǎn)義為瀏覽器不能執(zhí)行的代碼,這就避免了有心之人通過惡意字符獲取用戶的個(gè)人資料等信息,高效地解決了跨站攻擊問題,通過對(duì)轉(zhuǎn)義規(guī)則進(jìn)行更新和升級(jí),使得維護(hù)和擴(kuò)展起來十分靈活和方便,提高了瀏覽器的安全性,保障了用戶的權(quán)益。本申請(qǐng)實(shí)施例還提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。這里的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有一個(gè)或者多個(gè)程序。其中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以包括易失性存儲(chǔ)器,例如隨機(jī)存取存儲(chǔ)器;存儲(chǔ)器也可以包括非易失性存儲(chǔ)器,例如只讀存儲(chǔ)器、快閃存儲(chǔ)器、硬盤或固態(tài)硬盤;存儲(chǔ)器還可以包括上述種類的存儲(chǔ)器的組合。當(dāng)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中一個(gè)或者多個(gè)程序可被一個(gè)或者多個(gè)處理器執(zhí)行,以實(shí)現(xiàn)上述第一實(shí)施例至第三實(shí)施例中任一實(shí)施例所提供的跨站攻擊解決方法。需要說明的是,在本文中,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括該要素的過程、方法、物品或者裝置中還存在另外的相同要素。上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到上述實(shí)施例方法可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如rom/ram、磁碟、光盤)中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì)算機(jī),服務(wù)器,空調(diào)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的
技術(shù)領(lǐng)域:
,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。當(dāng)前第1頁12