发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的密码输入框元素处理浏览器和相应的密码输入框元素处理方法。
依据本发明的一个方面,提供了一种密码输入框元素处理浏览器,包括:至少一个密码输入框元素的DOM对象处理模块,其中每个DOM对象处理模块配置为存储有对密码输入框元素的定制处理;页面解析模块,配置为在浏览器中加载获取页面,并对页面中的密码输入框元素进行解析,将该密码输入框元素转换为DOM对象;DOM处理模块,配置为调用设置的至少一个密码输入框元素的DOM对象处理模块对转换的DOM对象进行设置的定制处理;密码输入模块,配置为在经定制处理后的密码输入框中接收浏览器用户的密码内容的输入;以及,在密码内容输入结束后,将在经定制处理后的密码输入框中的内容写入到密码输入框元素中;查询模块,配置为从对象处理注册表中查询所述浏览器中是否存在对所述密码输入框元素进行处理的DOM对象处理器,其中,所述对象处理注册表中登记所述至少一个DOM对象处理器。
可选的,密码输入模块还配置为根据预置的加密算法对密码内容进行加密;将经过加密的密码内容写入到密码输入框元素中。
可选的,上述浏览器还包括:保存模块,配置为在密码内容输入结束后,在浏览器侧保存输入的密码内容。
可选的,上述浏览器还包括:密码处理模块,配置为在加载获取页面时,从浏览器侧获取保存的密码内容;将获取的密码内容显示到经定制处理的密码输入框中,和/或,写入到未经定制处理的密码输入框中。
可选的,DOM处理模块还配置为:从转换的DOM对象中获取密码输入框元素在页面上的位置信息;根据位置信息,在密码输入框元素上生成重叠的块级层;在块级层上,调用设置的至少一个密码输入框元素的DOM对象处理器对转换的DOM对象进行设置的定制处理。
可选的,密码输入模块还配置为隐藏该密码输入框元素,将密码输入到块级层。
可选的,密码输入模块还配置为将块级层接收的密码转换为指定标识符,并将转换后的指定标识符按转换顺序显示在页面上。
可选的,密码输入模块还配置为在块级层失去焦点时,将块级层接收的内容输入到密码输入框元素中。
可选的,块级层包括div层。
可选的,至少一个DOM对象处理器中还配置为存储有规定对密码输入框元素加载完成时触发的事件ContentReady进行处理的处理方式。
根据本发明的另一发明,还提供了一种密码输入框元素处理方法,在浏览器侧设置至少一个密码输入框元素的DOM对象处理器,其中每个DOM对象处理器配置为存储有对密码输入框元素的定制处理,包括:在浏览器侧加载获取页面,并对页面中的密码输入框元素进行解析,将该密码输入框元素转换为DOM对象;从对象处理注册表中查询浏览器中是否存在对密码输入框元素进行处理的DOM对象处理器,其中,对象处理注册表中登记至少一个DOM对象处理器,然后调用设置的至少一个密码输入框元素的DOM对象处理器对转换的DOM对象进行设置的定制处理;在经定制处理后的密码输入框中接收浏览器用户的密码内容的输入;在密码内容输入结束后,将在经定制处理后的密码输入框中的内容写入到密码输入框元素中。
可选的,将在经定制处理后的密码输入框中的内容写入到密码输入框元素中,包括:根据预置的加密算法对密码内容进行加密;将经过加密的密码内容写入到密码输入框元素中。
可选的,在密码内容输入结束后,包括:在浏览器侧保存输入的密码内容。
可选的,上述方法还包括:在加载获取页面时,从浏览器侧获取保存的密码内容;将获取的密码内容显示到经定制处理的密码输入框中,和/或,写入到未经定制处理的密码输入框中。
可选的,在接收到递交事件时,将在经定制处理后的密码输入框中的内容写入到密码输入框元素中,并将密码内容提交到网络侧。
可选的,调用设置的至少一个密码输入框元素的DOM对象处理器对转换的DOM对象进行设置的定制处理,包括:从转换的DOM对象中获取密码输入框元素在页面上的位置信息;根据位置信息,在密码输入框元素上生成重叠的块级层;在块级层上,调用设置的至少一个密码输入框元素的DOM对象处理器对转换的DOM对象进行设置的定制处理。
可选的,将密码输入到经定制处理后的密码输入框中,包括:隐藏该密码输入框元素,将密码输入到块级层。
可选的,将密码输入到块级层,包括:将块级层接收的密码转换为指定标识符,并将转换后的指定标识符按转换顺序显示在页面上。
可选的,将密码输入到经定制处理后的密码输入框中,还包括:在块级层失去焦点时,将块级层接收的内容输入到密码输入框元素中。
可选的,块级层包括div层。
可选的,至少一个DOM对象处理器中还配置为存储有规定对密码输入框元素加载完成时触发的事件ContentReady进行处理的处理方式。
可选的,浏览器为IE浏览器时,浏览器所在的客户端在WebBrowser插件设置第一接口IElementBehaviorFactory、第二接口IElementBehavior、第三接口IDocHostUIHandler以及第四接口IElementBehaviorSite,其中,第一接口和第二接口用于调用各DOM对象处理器,第三接口用于将各DOM对象处理器注册到对象处理注册表中,第四接口与客户端关联;调用设置的至少一个密码输入框元素的DOM对象处理器,包括:内核引擎调用行为查询方法,询问客户端关于DIV_PSW的第一接口,并提供第四接口与之关联,接收客户端返回的对象实例;内核引擎在加载密码输入框元素时,调用元素行为通知方法,通知客户端页面元素的加载状态。
在本发明实施例中,对于密码框元素解析出的每个DOM对象,在网络侧设置对其进行定制处理的DOM对象处理模块,在页面的获取过程中,利用调用的DOM对象处理模块对DOM对象进行设置的定制处理。本例中,密码并不是直接输入到密码输入框元素中,而是先行输入到经定制处理后的密码输入框,然后再写入密码输入框元素中。若恶意软件和木马等为了获得用户密码监控网页中的密码输入框,在密码的初步输入时,该密码输入框并不会获得密码内容,因此,此时的监控无法截取到密码。而在密码到密码输入框元素的输入时,由于此时的密码是由浏览器直接写入,而不是由用户从外部输入,恶意软件和木马也无法发现并截取该密码。因此,采用本发明提供的浏览器能够防止各种恶意程序对密码的截取,提高系统的安全性和用户感受体验。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
现有技术中提及,很多的恶意软件和木马等为了获得用户密码,会专门监控网页中的密码输入框,在用户向密码输入框输入密码时,截取用户的密码,从而导致用户密码等被窃取。现有的网页浏览器虽然可以隐藏的方式来显示用户输入到密码输入框中的内容,但是无法防止各种恶意程序对密码的截取。因此需要对密码输入框的呈现和处理方式进行改进,以便提供更安全的方式。
为解决上述技术问题,本发明实施例提供了一种对密码输入框元素进行处理的浏览器。图1示出了根据本发明的一个实施例的密码输入框元素处理浏览器的结构示意图。该浏览器包括至少一个密码输入框元素的DOM对象处理模块110、页面解析模块120、DOM处理模块130以及密码输入模块140。现对浏览器包括的各模块的功能进行详细说明。
首先介绍至少一个密码输入框元素的DOM对象处理模块110。DOM对象处理模块110的数量为至少一个,且预先设置在浏览器侧,在每个DOM对象处理模块110中存储有对密码输入框元素的定制处理。DOM对象处理模块的数量可以是1个,也可以是2个,也可以是3个、4个、5个或更多,具体的数量根据特定DOM对象的数量以及定制处理的数量决定。图1中为了示意,将其设置为3个。
其次,介绍页面解析模块120。在对获取的一个页面进行处理时,页面解析模块120在浏览器侧中加载获取页面。考虑到页面及页面元素并不能够直接进行处理,因此,页面解析模块120需要对页面中的密码输入框元素进行解析,将该密码输入框元素转换为DOM对象,以供后续的DOM模块130进行处理。
然后,介绍DOM处理器130。参见图1,DOM处理模块130一端耦接到页面解析模块120,另一端耦接到在浏览器侧预设置的至少一个密码框元素的DOM对象处理模块110。当对密码框元素的解析及转换操作结束后,DOM处理模块130会调用设置的至少一个密码输入框元素的DOM对象处理模块对转换的DOM对象进行设置的定制处理。
最后,介绍密码输入模块140。参见图1,密码输入模块140耦接到DOM处理模块130。在DOM处理模块130的定制处理操作结束后,密码输入模块140在经定制处理后的密码输入框中接收浏览器用户的密码内容的输入,完成密码的初步输入。进一步,在密码内容输入结束后,密码输入模块140将在经定制处理后的密码输入框中的内容写入到密码输入框元素中,从而实现了密码到密码输入框元素的输入。
在本发明实施例中,对于密码框元素解析出的每个DOM对象,在网络侧设置对其进行定制处理的DOM对象处理模块,在页面的获取过程中,利用调用的DOM对象处理模块对DOM对象进行设置的定制处理。本例中,密码并不是直接输入到密码输入框元素中,而是先行输入到经定制处理后的密码输入框,然后再写入密码输入框元素中。若恶意软件和木马等为了获得用户密码监控网页中的密码输入框,在密码的初步输入时,该密码输入框并不会获得密码内容,因此,此时的监控无法截取到密码。而在密码到密码输入框元素的输入时,由于此时的密码是由浏览器直接写入,而不是由用户从外部输入,恶意软件和木马也无法发现并截取该密码。因此,采用本发明提供的浏览器能够防止各种恶意程序对密码的截取,提高系统的安全性和用户感受体验。
优选的,密码输入模块140还可以根据预置的加密算法对密码内容进行加密,进而将经过加密的密码内容写入到密码输入框元素中。这样,密码内容的安全性又增加了一层保障,即使恶意软件或木马等恶意程序仍然能够从密码输入框元素中获取密码,其获取的是经过加密的密码内容,仍然不能得到有效密码,进一步提供了系统的安全性。
参见图1,密码输入框元素处理浏览器还包括保存模块150,耦接到密码输入模块140。在密码内容输入结束后,保存模块150可以在浏览器侧保存输入的密码内容。相应的,对密码输入框元素进行处理的浏览器中的密码处理模块160,耦接到保存模块150。在加载获取页面时,该密码处理模块160可以从浏览器侧获取保存模块150保存的密码内容,随后,将获取的密码内容显示到经定制处理的密码输入框中。本例在实施时,由于只是获取的密码内容,对密码输入框并没有声明一定进行了定制处理,即,此处的密码输入框也可能是未经定制处理的密码输入框。此时,密码处理模块160可以将获取的密码内容写入到未经定制处理的密码输入框中。
上文提及,DOM处理模块130会调用设置的至少一个密码输入框元素的DOM对象处理模块对转换的DOM对象进行设置的定制处理。现提供一种具体的处理方式,在本例中,DOM处理模块130首先从转换的DOM对象中获取密码输入框元素在页面上的位置信息。进一步,DOM处理模块130可以根据获取的密码输入框元素在页面上的位置信息,在密码输入框元素上生成重叠的块级层。然后,在块级层上,DOM处理模块130可以调用设置的至少一个密码输入框元素的DOM对象处理器对转换的DOM对象进行设置的定制处理。在设置块级层之后,为提高系统的安全性,密码输入模块140可以将该密码输入框元素在页面上隐藏,将密码输入到设置的块级层。由于原密码输入框元素被隐藏,则对于监控该密码输入框元素的恶意程序而言,监控对象消息,则获取该监控对象接收的密码内容的操作自然无法完成,从而达到提高系统安全性的目的。
在块级层输入密码时,密码输入器140可以采用传统密码输入的方式,即,将块级层接收的密码转换为指定标识符,并将转换后的指定标识符按转换顺序显示在页面上。
在相关技术中,恶意程序监控密码输入框元素的一个常用方式是监控焦点的位置,若焦点出现在密码输入框中,则很可能是用户在输入密码内容,此时就可以进行密码内容的窃取。为解决该技术问题,本例提供了一种解决方式,即,密码输入器140在密码输入框元素上重叠的块级层失去焦点时,才将块级层接收的内容输入到密码输入框元素中。对恶意程序而言,焦点消失,其不会再对密码输入框元素进行监控,从而提高了密码输入的安全性。该焦点在浏览器中通常以光标实现。
在本发明实施例的任意一个优选的实施例中,块级层包括div层。
其中,对于DOM对象处理模块110的调用操作,DOM处理模块130需要知道每个DOM对象处理模块110的地址,进而进行相应的调用,若DOM对象处理模块较多且存储地址相对分散的情况下,DOM处理模块130的调用就会存在一定的难度。现提供一种优选的调用方式,本例中,设置对象处理注册表,在该表格中登记所有的DOM对象处理模块的登记信息,此处的登记信息可以包括各DOM对象处理模块的存储地址、每个DOM对象处理模块的定制操作、是否正在被调用等等。相应的,参见图1,本发明实施例提供的对页面密码框进行处理的浏览器还包括查询模块170。该查询模块170与DOM处理模块130耦合,从对象处理注册表中查询浏览器中是否存在对密码框元素进行处理的DOM对象处理模块。查询结束后,查询模块170将查询结果通知DOM处理模块130,而DOM处理模块130会根据查询结果调用相应的DOM对象处理模块110。
对于每个DOM对象,都存在有至少两个事件,一个是该DOM对象已经加载完成时触发的事件ContentReady,另一个是整个HTML都已经加载完成时触发的事件DocumentReady。由于本发明实施例涉及对密码框元素进行处理,因此仅仅涉及该DOM对象已经加载完成时触发的事件ContentReady。优选的,本发明实施例提供的至少一个DOM对象处理模块中存储有规定对密码框元素加载完成时触发的事件ContentReady进行处理的处理方式。进一步,本发明实施例提供的至少一个DOM对象处理模块中还可以存储对整个HTML都已经加载完成时触发的事件DocumentReady进行处理的处理方式。
现以一个具体实施例对设置的重叠的块级层包括div层时的情况进行详细阐述和说明。
对于密码输入框元素,在网页浏览器的渲染引擎中包括针对密码输入框元素的特定处理器(即DOM对象处理模块),该特定处理器中至少规定了对DOM对象已经加载完成时触发的事件ContentReady进行处理的处理方法。
实施时,首先由DOM处理模块130获取密码输入框元素的位置信息。然后,DOM处理模块130在密码输入框元素的区域上重叠一个div层,设置div层的各种属性,由于div层叠加在密码输入框元素上,因此,div层事先接收交互事件,并进行处理。进一步,密码输入模块140将原密码输入框元素的位置隐藏,将div层设置为当接收到用户输入时,以传统密码输入的方式显示输入内容。在div失去焦点时,密码输入模块140将div层的内容写入到密码输入框元素中。
上述的对页面文本框进行处理的浏览器的各部分构架是根据其功能提供的,实际构架并不仅限于上述各部分,还可以包括其他部分、模块、器件等。
图2示出了根据本发明一个实施例的密码输入框元素处理方法的处理流程图。本例中,在浏览器侧设置至少一个密码输入框元素的DOM对象处理器,其中每个对象处理器存储有密码输入框元素的定制处理。该方法包括步骤S202至步骤S208。
步骤S202、在浏览器侧加载获取页面,并对页面中的密码输入框元素进行解析,将该密码输入框元素转换为DOM对象。
步骤S204、调用设置的至少一个密码输入框元素的DOM对象处理器对转换的DOM对象进行设置的定制处理。
步骤S206、在经定制处理后的密码输入框中接收浏览器用户的密码内容的输入。
步骤S208、在密码内容输入结束后,将在经定制处理后的密码输入框中的内容写入到密码输入框元素中。
在本发明实施例中,对于密码框元素解析出的每个DOM对象,在网络侧设置对其进行定制处理的DOM对象处理模块,在页面的获取过程中,利用调用的DOM对象处理器对DOM对象进行设置的定制处理。本例中,密码并不是直接输入到密码输入框元素中,而是先行输入到经定制处理后的密码输入框,然后再写入密码输入框元素中。若恶意软件和木马等为了获得用户密码监控网页中的密码输入框,在密码的初步输入时,该密码输入框并不会获得密码内容,因此,此时的监控无法截取到密码。而在密码到密码输入框元素的输入时,由于此时的密码是由浏览器直接写入,而不是由用户从外部输入,恶意软件和木马也无法发现并截取该密码。因此,采用本发明提供的浏览器能够防止各种恶意程序对密码的截取,提高系统的安全性和用户感受体验。
需要说明的是,本流程中的DOM对象处理器与前文所提及的DOM对象处理模块的功能是相类似的,因前文涉及浏览器的架构,因此将其称为DOM对象处理模块。而本流程中仅涉及DOM对象处理器一个部件,因此,无须将其称之为模块,后文不再赘述。
参见图2,步骤S208在实施时提及将在经定制处理后的密码输入框中的内容写入到密码输入框元素中。优选的,可以根据预置的加密算法对密码内容进行加密,之后将经过加密的密码内容写入到密码输入框元素中。经加密后,即使恶意程序获取密码内容,若不能同时获取相应的加密算法,该密码内容也是无效的,提高系统的安全性。
参见图2所示流程,在密码内容输入结束后,还可以在浏览器侧保存输入的密码内容。之后,在加载获取页面时,可以直接从浏览器侧获取保存的密码内容,进一步将获取的密码内容显示到经定制处理的密码输入框中。当然,若本次未对密码输入框进行定制处理,则可以直接将获取的密码内容写入到未经定制处理的密码输入框中。
进一步,在接收到递交事件时,可以触发后续操作,将在经定制处理后的密码输入框中的内容写入到密码输入框元素中,并将密码内容提交到网络侧。
如图2所示流程,步骤S204中提及调用设置的至少一个密码输入框元素的DOM对象处理器对转换的DOM对象进行设置的定制处理,其具体的处理流程如图3所示,包括步骤S302至步骤S306。
步骤S302、从转换的DOM对象中获取密码输入框元素在页面上的位置信息。
步骤S304、根据步骤S302中获取的位置信息,在密码输入框元素上生成重叠的块级层。
步骤S306、在块级层上,调用设置的至少一个密码输入框元素的DOM对象处理器对转换的DOM对象进行设置的定制处理。
前文提及将密码输入到经定制处理后的密码输入框中,优选的,可以隐藏该密码输入框元素,并进一步将密码输入到块级层。由于原密码输入框元素被隐藏,则对于监控该密码输入框元素的恶意程序而言,监控对象消息,则获取该监控对象接收的密码内容的操作自然无法完成,从而达到提高系统安全性的目的。
在块级层输入密码时,密码输入器140可以采用传统密码输入的方式,即,将块级层接收的密码转换为指定标识符,并将转换后的指定标识符按转换顺序显示在页面上。
在相关技术中,恶意程序监控密码输入框元素的一个常用方式是监控焦点的位置,若焦点出现在密码输入框中,则很可能是用户在输入密码内容,此时就可以进行密码内容的窃取。为解决该技术问题,本例提供了一种解决方式,即,密码输入器140在密码输入框元素上重叠的块级层失去焦点时,才将块级层接收的内容输入到密码输入框元素中。对恶意程序而言,焦点消失,其不会再对密码输入框元素进行监控,从而提高了密码输入的安全性。该焦点在浏览器中通常以光标实现。
在本发明实施例的任意一个优选的实施例中,块级层包括div层。
其中,对于DOM对象处理器的调用操作,需要知道每个DOM对象处理器的地址,进而进行相应的调用,若DOM对象处理器较多且存储地址相对分散的情况下,其调用就会存在一定的难度。现提供一种优选的调用方式,本例中,设置对象处理注册表,在该表格中登记所有的DOM对象处理器的登记信息,此处的登记信息可以包括各DOM对象处理器的存储地址、每个DOM对象处理器的定制操作、是否正在被调用等等。相应的,参见图1,本发明实施例提供的对页面密码框进行处理的浏览器从对象处理注册表中查询浏览器中是否存在对密码框元素进行处理的DOM对象处理器。查询结束后,会根据查询结果调用相应的DOM对象处理器。
对于每个DOM对象,都存在有至少两个事件,一个是该DOM对象已经加载完成时触发的事件ContentReady,另一个是整个HTML都已经加载完成时触发的事件DocumentReady。由于本发明实施例涉及对密码框元素进行处理,因此涉及该DOM对象已经加载完成时触发的事件ContentReady。优选的,本发明实施例提供的至少一个DOM对象处理器中存储有规定对密码框元素加载完成时触发的事件ContentReady进行处理的处理方式。进一步,本发明实施例提供的至少一个DOM对象处理模块中还可以存储对整个HTML都已经加载完成时触发的事件DocumentReady进行处理的处理方式。
实施例一
本发明实施例中提及到的浏览器可以为多种,例如微软公司的Internet Explorer(简称IE)、Mozilla Firefox、谷歌公司的Chrome、Opera以及苹果公司的Safari等等。
现以IE浏览器为例对本发明实施例提供的文本框元素的具体处理方法进行详细地阐述和说明。
对于针对每个网页元素的特定处理,可能需要实现
IElementBehavior(元素行为)
Implementing the IElementBehavior Interface(执行元素行为接口)
Implementing the Notify Method(执行通知方法)
Implementing the Init Method (执行初始化方法)
Implementing the Detach Method(执行分离方法)
IElementBehaviorFactory(元素行为工厂行为)
IElementNamespaceFactory(元素命名空间工厂接口)
IElementNamespaceFactoryCallback(元素命名空间回调接口)
初始化设置后,IE浏览器中的客户端WebBrowser(网络浏览器)插件实现网页元素的具体处理步骤如下:
步骤1、客户端WebBrowser插件实现IElementBehaviorFactory接口和IElementBehavior接口。
步骤2、客户端WebBrowser插件实现IDocHostUIHandler接口。
注:这里的WebBrowser插件就是在针对特定DOM对象的特定处理器在IE中的具体实施方式,实现IDocHostUIHandler接口用于把特定处理器注册到对象注册表中由DOM处理器采用,实现IElementBehaviorFactory和IElementBehavior接口用于说明具体的定制处理实现。
步骤3、页面创建时,MSHTML会调用IDocHostUIHandler的GetHostInfo方法,客户端程序向MSHTML提供页面元素TAG及对应的Behavior Name。
注:MSHTML对应于内核引擎,这个步骤对应于DOM处理器查询所有的DOM对象处理器列表。
步骤4、页面加载时,MSHTML会根据以上提供的Behavior Name,逐个调用IElementBehaviorFactory的FindBehavior方法,由客户端提供关于DIV_PSW的IElementBehavior接口实现。
此处,优选的,并与页面提供的对应接口IElementBehaviorSite关联,以确定是否定制行为。
步骤5、若客户端提供了input typ=password时,MSHTML在加载对应TAG的页面元素时,调用输入密码元素行为通知方法,通知客户端页面元素的加载状态。
注:元素行为通知方法在IE中实现可利用IElementBehavior::Notify。
div在CONTENTEDITABLE属性开户时,可以接收键盘输入,由客户端程序实现OnKeyDown,将输入字符记入div的自定义属性pswText,并设置div的innerText为‘*’。div的onblur事件被触发时,pswText的值被写回input typ=password。
其中,值得注意的是,步骤4和步骤5对应于处理模块调用相应的DOM对象处理器对DOM对象进行处理。
本实施例的方法并不仅限I E浏览器,对于其他浏览器,其实现方式是相类似的。
实施例二
上文描述的是直接对密码输入框元素进行处理,众所周知,浏览器的页面元素有多种,浏览器需要对每个页面元素均进行转换及处理,然后将处理后的页面元素进行渲染,才生成呈现的网页。
图4示出了根据本发明一个实施例的进行页面元素处理的浏览器的结构示意图。参见图4,该浏览器包括设置在浏览器侧的至少一个DOM对象处理器410,页面解析器420以及DOM处理器430。
其中,DOM对象处理器410包括至少一个,且预先设置在浏览器侧,在每个DOM对象处理器410中存储有特定DOM对象的定制处理。DOM对象处理器的数量可以是1个,也可以是2个,也可以是3个、4个、5个或更多,具体的数量根据特定DOM对象的数量以及定制处理的数量决定。图4中为了示意,将其设置为3个。
在对获取的一个页面进行处理时,页面解析器420在浏览器侧加载该获取页面,并对获取页面的页面元素进行解析。考虑到页面以及页面元素并不能够直接进行处理,因此,页面解析器420在解析过程中将各页面元素转换为DOM对象,以供后续DOM处理器430处理。
参见图4,DOM处理器430,耦接到页面解析器420和至少一个DOM对象处理器410。当页面解析器420解析结束后,启动DOM处理器430。DOM处理器430在转换的DOM对象中选择至少一个作为当前准备处理的DOM对象,调用设置的至少一个DOM对象处理器410,对选择出的DOM对象进行设置的定制处理。
参见图4,该浏览器还包括树生成器440,耦接到DOM处理器430。当DOM处理器430调用DOM对象处理器410,对DOM对象进行定制处理结束后,树生成器440利用经过设置的定制处理的DOM对象生成最终的DOM树,并对DOM树进行渲染。
而密码输入框元素是页面元素的一种,因此,当页面元素为密码输入框元素时,利用浏览器进行页面元素处理的装置可以直接对密码框元素进行处理,其选择的DOM对象处理器存储的定制处理方式是针对密码输入框元素的定制处理即可。也就是说,本例中,参见图4,其选择的DOM对象处理器410应该是密码输入框元素的DOM对象处理器410。其他各部件的功能维持不变。
本例中,页面解析器420与在前的实施例中的页面解析模块120的功能相类似,均是将相应的元素转换为DOM对象。而DOM处理器430与在前的实施例中的DOM处理模块130的功能相类似,调用相应的DOM对象处理模块(或DOM对象处理器),对当前DOM对象进行相应处理。
采用本发明提供的浏览器和相应的处理方法,能够达到如下有益效果:
在本发明实施例中,对于密码框元素解析出的每个DOM对象,在网络侧设置对其进行定制处理的DOM对象处理模块,在页面的获取过程中,利用调用的DOM对象处理模块对DOM对象进行设置的定制处理。本例中,密码并不是直接输入到密码输入框元素中,而是先行输入到经定制处理后的密码输入框,然后再写入密码输入框元素中。若恶意软件和木马等为了获得用户密码监控网页中的密码输入框,在密码的初步输入时,该密码输入框并不会获得密码内容,因此,此时的监控无法截取到密码。而在密码到密码输入框元素的输入时,由于此时的密码是由浏览器直接写入,而不是由用户从外部输入,恶意软件和木马也无法发现并截取该密码。因此,采用本发明提供的浏览器能够防止各种恶意程序对密码的截取,提高系统的安全性和用户感受体验。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的浏览器中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解析为名称。
本文公开了A1、一种密码输入框元素处理浏览器,包括:至少一个密码输入框元素的DOM对象处理模块,其中每个DOM对象处理模块配置为存储有对密码输入框元素的定制处理;页面解析模块,配置为在所述浏览器中加载获取页面,并对页面中的密码输入框元素进行解析,将该密码输入框元素转换为DOM对象;DOM处理模块,配置为调用所述设置的至少一个密码输入框元素的DOM对象处理模块对所述转换的DOM对象进行所述设置的定制处理;密码输入模块,配置为在经定制处理后的所述密码输入框中接收浏览器用户的密码内容的输入;以及,在所述密码内容输入结束后,将在经定制处理后的所述密码输入框中的内容写入到所述密码输入框元素中;查询模块,配置为从对象处理注册表中查询所述浏览器中是否存在对所述密码输入框元素进行处理的DOM对象处理器,其中,所述对象处理注册表中登记所述至少一个DOM对象处理器。A2、根据A1所述的浏览器,其特征在于,所述密码输入模块还配置为根据预置的加密算法对所述密码内容进行加密;将经过加密的密码内容写入到所述密码输入框元素中。A 3、根据A1或A2所述的浏览器,其特征在于,还包括:保存模块,配置为在所述密码内容输入结束后,在所述浏览器侧保存输入的所述密码内容。A4、根据A3所述的浏览器,其特征在于,还包括:密码处理模块,配置为在加载获取页面时,从所述浏览器侧获取保存的所述密码内容;将获取的所述密码内容显示到经定制处理的密码输入框中,和/或,写入到未经定制处理的密码输入框中。A5、根据A1至A4任一项所述的浏览器,其特征在于,所述DOM处理模块还配置为:从所述转换的DOM对象中获取密码输入框元素在页面上的位置信息;根据所述位置信息,在所述密码输入框元素上生成重叠的块级层;在所述块级层上,调用所述设置的至少一个密码输入框元素的DOM对象处理器对所述转换的DOM对象进行所述设置的定制处理。A6、根据A5所述的浏览器,其特征在于,所述密码输入模块还配置为隐藏该密码输入框元素,将所述密码输入到所述块级层。A7、根据A5或A6所述的浏览器,其特征在于,所述密码输入模块还配置为将所述块级层接收的密码转换为指定标识符,并将转换后的指定标识符按转换顺序显示在页面上。A8、根据A5或A7任一项所述的浏览器,其特征在于,所述密码输入模块还配置为在所述块级层失去焦点时,将所述块级层接收的内容输入到密码输入框元素中。A9、根据A5至A8任一项所述的浏览器,其特征在于,所述块级层包括div层。A10、根据A1至A9任一项所述的浏览器,其特征在于,所述至少一个DOM对象处理器中还配置为存储有规定对所述密码输入框元素加载完成时触发的事件ContentReady进行处理的处理方式。
本文公开了B11、一种浏览器侧对密码输入框元素进行处理的方法,在浏览器侧设置至少一个密码输入框元素的DOM对象处理器,其中每个DOM对象处理器配置为存储有对密码输入框元素的定制处理,包括:在所述浏览器侧加载获取页面,并对页面中的密码输入框元素进行解析,将该密码输入框元素转换为DOM对象;从对象处理注册表中查询所述浏览器中是否存在对所述密码输入框元素进行处理的DOM对象处理器,其中,所述对象处理注册表中登记所述至少一个DOM对象处理器,然后调用所述设置的至少一个密码输入框元素的DOM对象处理器对所述转换的DOM对象进行所述设置的定制处理;在经定制处理后的所述密码输入框中接收浏览器用户的密码内容的输入;在所述密码内容输入结束后,将在经定制处理后的所述密码输入框中的内容写入到所述密码输入框元素中。B12、根据要求B11所述的方法,其特征在于,将在经定制处理后的所述密码输入框中的内容写入到所述密码输入框元素中,包括:根据预置的加密算法对所述密码内容进行加密;将经过加密的密码内容写入到所述密码输入框元素中。B13、根据B11或B12所述的方法,其特征在于,在所述密码内容输入结束后,包括:在所述浏览器侧保存输入的所述密码内容。B14、根据B13所述的方法,其特征在于,还包括:在加载获取页面时,从所述浏览器侧获取保存的所述密码内容;将获取的所述密码内容显示到经定制处理的密码输入框中,和/或,写入到未经定制处理的密码输入框中。B15、根据B13至B14所述的方法,其特征在于,在接收到递交事件时,将在经定制处理后的所述密码输入框中的内容写入到所述密码输入框元素中,并将所述密码内容提交到网络侧。B16、根据B11至B15任一项所述的方法,其特征在于,调用所述设置的至少一个密码输入框元素的DOM对象处理器对所述转换的DOM对象进行所述设置的定制处理,包括:从所述转换的DOM对象中获取密码输入框元素在页面上的位置信息;根据所述位置信息,在所述密码输入框元素上生成重叠的块级层;在所述块级层上,调用所述设置的至少一个密码输入框元素的DOM对象处理器对所述转换的DOM对象进行所述设置的定制处理。B17、根据B16所述的方法,其特征在于,所述将密码输入到经定制处理后的密码输入框中,包括:隐藏该密码输入框元素,将所述密码输入到所述块级层。B18、根据B16或B17所述的方法,其特征在于,将所述密码输入到所述块级层,包括:将所述块级层接收的密码转换为指定标识符,并将转换后的指定标识符按转换顺序显示在页面上。B19、根据B16至B18任一项所述的方法,其特征在于,将密码输入到经定制处理后的密码输入框中,还包括:在所述块级层失去焦点时,将所述块级层接收的内容输入到密码输入框元素中。B20、根据B16至B19任一项所述的方法,其特征在于,所述块级层包括div层。B21、根据B11至B20任一项所述的方法,其特征在于,所述至少一个DOM对象处理器中还配置为存储有规定对所述密码输入框元素加载完成时触发的事件ContentReady进行处理的处理方式。B22、根据B11至B21任一项所述的方法,其特征在于,所述浏览器为IE浏览器时,所述浏览器所在的客户端在WebBrowser插件设置第一接口IElementBehaviorFactory、第二接口IElementBehavior、第三接口IDocHostUIHandler以及第四接口IElementBehaviorSite,其中,所述第一接口和所述第二接口用于调用各DOM对象处理器,所述第三接口用于将各DOM对象处理器注册到所述对象处理注册表中,所述第四接口与客户端关联;调用所述设置的至少一个密码输入框元素的DOM对象处理器,包括:内核引擎调用行为查询方法,询问客户端关于DIV_PSW的第一接口,并提供所述第四接口与之关联,接收客户端返回的对象实例;所述内核引擎在加载密码输入框元素时,调用元素行为通知方法,通知客户端页面元素的加载状态。