本發(fā)明屬于計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種預(yù)防瀏覽器自動(dòng)保存信息的方法及裝置。
背景技術(shù):
通過(guò)瀏覽器上網(wǎng)訪問(wèn)web網(wǎng)頁(yè),如果網(wǎng)頁(yè)需要驗(yàn)證訪客身份則需要輸入賬號(hào)密碼登錄,基于人性化需求,瀏覽器會(huì)提供自動(dòng)保存用戶登錄賬號(hào)信息的功能。在登錄成功后,瀏覽器自動(dòng)保存用戶賬號(hào)密碼,以后再次訪問(wèn)該網(wǎng)頁(yè),瀏覽器則會(huì)自動(dòng)填充賬號(hào)密碼,方便登錄操作。但是,這個(gè)人性化的功能在安全性要求高的系統(tǒng)中(例如金融類(lèi)系統(tǒng)),則存在安全隱患。如果用戶在公用的電腦上保存了賬號(hào)信息,并且之后并非本人使用電腦,則等同于賬號(hào)被盜用,導(dǎo)致數(shù)據(jù)泄漏,特別是金融類(lèi)系統(tǒng),影響更加嚴(yán)重。
技術(shù)實(shí)現(xiàn)要素:
為了克服現(xiàn)有技術(shù)的不足,本發(fā)明的目的之一在于提供一種預(yù)防瀏覽器自動(dòng)保存信息的方法,其能解決瀏覽器自動(dòng)保存用戶登錄信息的技術(shù)問(wèn)題。
本發(fā)明的目的之二在于提供了一種預(yù)防瀏覽器自動(dòng)保存信息的裝置,其能解決瀏覽器自動(dòng)保存用戶登錄信息的技術(shù)問(wèn)題。
本發(fā)明的目的之一采用以下技術(shù)方案實(shí)現(xiàn):
一種預(yù)防瀏覽器自動(dòng)保存信息的方法,包括以下步驟:
s1:在網(wǎng)頁(yè)加載完成前,將該網(wǎng)頁(yè)密碼輸入框替換為文本輸入框;
s2:在觸發(fā)焦點(diǎn)事件時(shí),判斷當(dāng)前瀏覽器是否為低于ie9版本的瀏覽器,如果是,則執(zhí)行步驟s3,如果否,則執(zhí)行步驟s4;
s3:動(dòng)態(tài)創(chuàng)建新的密碼輸入框,并替換文本輸入框;
s4:動(dòng)態(tài)修改文本輸入框?yàn)槊艽a輸入框。
優(yōu)選的,該網(wǎng)頁(yè)加載中提交表單的方式為ajax異步提交。
優(yōu)選的,在步驟s1之前還包括步驟s0:判斷當(dāng)前網(wǎng)頁(yè)是否為登錄頁(yè)面,如果是,則執(zhí)行步驟s1。
本發(fā)明的目的之二采用以下技術(shù)方案實(shí)現(xiàn):
一種預(yù)防瀏覽器自動(dòng)保存信息的裝置,包括以下模塊:
替換模塊:用于在網(wǎng)頁(yè)加載完成前,將該網(wǎng)頁(yè)密碼輸入框替換為文本輸入框;
第一判斷模塊:用于在觸發(fā)焦點(diǎn)事件時(shí),判斷當(dāng)前瀏覽器是否為低于ie9版本的瀏覽器,如果是,則執(zhí)行密碼框替換模塊,如果否,則執(zhí)行屬性修改模塊;
密碼框替換模塊:用于動(dòng)態(tài)創(chuàng)建新的密碼輸入框,并替換文本輸入框;
屬性修改模塊:用于動(dòng)態(tài)修改文本輸入框?yàn)槊艽a輸入框。
優(yōu)選的,該網(wǎng)頁(yè)加載中提交表單的方式為ajax異步提交。
優(yōu)選的,在替換模塊之前還包括第二判斷模塊:用于判斷當(dāng)前頁(yè)面是否為登錄頁(yè)面,如果是,則執(zhí)行替換模塊。
相比現(xiàn)有技術(shù),本發(fā)明的有益效果在于:
本發(fā)明的預(yù)防瀏覽器自動(dòng)保存信息的方法通過(guò)修改登錄頁(yè)面的關(guān)鍵標(biāo)示,偽裝成非登錄頁(yè)面,令瀏覽器無(wú)法識(shí)別登錄行為,導(dǎo)致自動(dòng)保存賬號(hào)信息的功能失效,實(shí)現(xiàn)阻止瀏覽器保存登錄賬號(hào)信息的功能。
附圖說(shuō)明
圖1為本發(fā)明的預(yù)防瀏覽器自動(dòng)保存信息的方法的流程圖;
圖2為本發(fā)明的預(yù)防瀏覽器自動(dòng)保存信息的裝置的結(jié)構(gòu)圖。
具體實(shí)施方式
下面,結(jié)合附圖以及具體實(shí)施方式,對(duì)本發(fā)明做進(jìn)一步描述:
如圖1所示,本發(fā)明提供了一種預(yù)防瀏覽器自動(dòng)保存信息的方法,對(duì)于自動(dòng)保存登錄信息,http相關(guān)的協(xié)議上并沒(méi)有對(duì)應(yīng)的條款,該行為屬于瀏覽器單方面的行為,因此沒(méi)有正規(guī)的方法禁止瀏覽器這種行為,但是可以通過(guò)偽裝登錄頁(yè)面的方式,使瀏覽器無(wú)法識(shí)別登錄頁(yè)面,間接禁止自動(dòng)保存登錄信息,上述方法主要包括以下步驟:
s0:判斷當(dāng)前網(wǎng)頁(yè)是否為登錄頁(yè)面,如果是,則執(zhí)行步驟s1;在登錄頁(yè)面加載完成前,瀏覽器會(huì)自動(dòng)掃描登錄頁(yè)面的輸入框元素,如果頁(yè)面存在密碼輸入框,則認(rèn)為是登錄頁(yè)面,啟動(dòng)自動(dòng)保存賬號(hào)的功能,因此,需要在頁(yè)面加載完成前,將密碼輸入框的type屬性改為text,瀏覽器無(wú)法標(biāo)識(shí);
s1:在網(wǎng)頁(yè)加載完成前,將該網(wǎng)頁(yè)密碼輸入框替換為文本輸入框;其中該網(wǎng)頁(yè)加載中提交表單的方式為ajax異步提交;早期瀏覽器依據(jù)表單(form)的提交事件判斷登錄行為,后來(lái)由于ajax異步方式開(kāi)發(fā)流行,新版的瀏覽器除了標(biāo)示表單(form)以外同時(shí)識(shí)別ajax異步提交表單的方式;
在網(wǎng)頁(yè)開(kāi)發(fā)中,表單提交有兩種方式:傳統(tǒng)的form的提交和ajax異步提交,form的提交是瀏覽器自動(dòng)整理表單數(shù)據(jù)再提交;ajax是通過(guò)編寫(xiě)js程序整理表單數(shù)據(jù),再通過(guò)js代碼提交表單,這個(gè)過(guò)程無(wú)須瀏覽器整理表單數(shù)據(jù),因此,瀏覽器無(wú)法從表單提交動(dòng)作中識(shí)別當(dāng)前是否為登錄頁(yè)面;
在瀏覽器識(shí)別ajax異步提交表單,關(guān)鍵是網(wǎng)頁(yè)加載完成后,識(shí)別html網(wǎng)頁(yè)是否存在密碼輸入框,即input[type=password],如果ajax提交的數(shù)據(jù)來(lái)源于密碼輸入框則自動(dòng)保存登錄信息;為了使得其不能保存相應(yīng)的信息,需要進(jìn)行下述操作;
s2:在觸發(fā)焦點(diǎn)事件時(shí),即是在鼠標(biāo)點(diǎn)擊密碼輸入框,并處于可輸入狀態(tài)的時(shí)候,就會(huì)觸發(fā)焦點(diǎn)事件;判斷當(dāng)前瀏覽器是否為ie且低于ie9版本的瀏覽器,如果是,則執(zhí)行步驟s3,如果否,則執(zhí)行步驟s4;由于ie8及更早的瀏覽器不支持修改input的type屬性,但是支持創(chuàng)建新的input標(biāo)簽,因此,修改密碼的時(shí)候需要區(qū)分以下兩種情況,一種是低于ie9版本的瀏覽器,另外一種是不低于ie9版本的瀏覽器;
s3:動(dòng)態(tài)創(chuàng)建新的密碼輸入框,并替換文本輸入框;當(dāng)判斷得知該瀏覽器的版本低于ie9的時(shí)候,執(zhí)行上述s3的操作,由于其不能直接修改input的type屬性,故而需要?jiǎng)?chuàng)建新的密碼輸入框來(lái)替代之前為了保護(hù)該網(wǎng)頁(yè)中信息不被保存而設(shè)置的文本輸入框;
s4:動(dòng)態(tài)修改文本輸入框?yàn)槊艽a輸入框。由于檢測(cè)到當(dāng)前的瀏覽器屬于版本較高的瀏覽器,故而可以通過(guò)直接修改input的type屬性來(lái)進(jìn)行相應(yīng)的修改。出于安全考慮,密碼輸入框在輸入密碼過(guò)程中不能顯示密碼明文,而必須屏蔽密碼,顯示一個(gè)個(gè)小圓點(diǎn),因此,在輸入框觸發(fā)焦點(diǎn)事件的時(shí)候,再通過(guò)js代碼將type改為password,這樣輸入的密碼也就變?yōu)樾A點(diǎn)。
如圖2所示,本發(fā)明提供了一種預(yù)防瀏覽器自動(dòng)保存信息的裝置,包括以下模塊:
在替換模塊之前還包括第二判斷模塊:用于判斷當(dāng)前頁(yè)面是否為登錄頁(yè)面,如果是,則執(zhí)行替換模塊。
替換模塊:用于在網(wǎng)頁(yè)加載完成前,將該網(wǎng)頁(yè)密碼輸入框替換為文本輸入框;其中,該網(wǎng)頁(yè)加載中提交表單的方式為ajax異步提交或者form表單提交;
第一判斷模塊:用于在觸發(fā)焦點(diǎn)事件時(shí),判斷當(dāng)前瀏覽器是否為ie且低于ie9版本的瀏覽器,如果是,則執(zhí)行密碼框替換模塊,如果否,則執(zhí)行屬性修改模塊;
密碼框替換模塊:用于動(dòng)態(tài)創(chuàng)建新的密碼輸入框,并替換文本輸入框;
屬性修改模塊:用于動(dòng)態(tài)修改文本輸入框?yàn)槊艽a輸入框。
對(duì)本領(lǐng)域的技術(shù)人員來(lái)說(shuō),可根據(jù)以上描述的技術(shù)方案以及構(gòu)思,做出其它各種相應(yīng)的改變以及形變,而所有的這些改變以及形變都應(yīng)該屬于本發(fā)明權(quán)利要求的保護(hù)范圍之內(nèi)。