一种数据的获取方法、装置及设备与流程

文档序号:16530796发布日期:2019-01-05 10:44阅读:221来源:国知局
一种数据的获取方法、装置及设备与流程
本申请涉及计算机
技术领域
,尤其涉及一种数据的获取方法、装置及设备。
背景技术
:目前,soa(service-orientedarchitecture,面向服务的架构)的设计方案被应用的范围越来越广,而此设计中由于模块间采用松耦合的方式连接,因此,很多流程不能在一台服务器的内存中计算完成,这样就会导致在整个流程中有多个衔接的接口。通常,这些接口采用标准的rpc(remoteprocedurecallprotocol,远程过程调用协议)方式调用即可,但是,如果某个或多个接口对安全性要求极高,则需要考虑尽可能安全的方案或技巧来实现。现有技术中,常用的服务间调用的安全策略包括以下两种:方案一,服务间相互约定签名。例如,如果a服务通常会调用b服务的接口获取调用数据,则b服务需要颁发给a服务一个签名。每当a服务调用b服务的接口获取调用数据时,a服务会使用该签名生成调用该接口的调用请求发送给b服务,b服务对该签名的有效性进行验证。方案二,服务间相互约定生成签名的算法,每当a服务调用b服务的接口获取调用数据时,a服务使用该算法生成签名,并将其发送给b服务,b服务对该签名进行反解析,并验证签名的有效性。然而,通过上述方案一获取签名的方式中,由于约定的签名为固定签名,因此,如果约定的签名被泄露,则其他的服务或者其他人就可以使用该签名对相应的接口进行伪装调用。通过上述方案二获取签名的方式中,尽管得到的签名不是固定的,但是,如果该算法的处理逻辑被破译,则会很容易被其他的服务或者其他人使用该签名对相应的接口进行伪装调用。综上可知,通过现有技术的方案可能会使得其他的服务或者其他人使用相应的签名对接口进行伪装调用,从而造成调用数据的泄露,导致调用数据的安全性较低。技术实现要素:本申请实施例的目的是提供一种数据的获取方法、装置及设备,以实现其他的服务或者其他人很难对需要调用的接口进行伪装调用,确保调用数据不会由于接口被伪装调用而发生泄露,提高调用数据的安全性。为解决上述技术问题,本申请实施例是这样实现的:本申请实施例提供的一种数据的获取方法,所述方法包括:接收第一调用请求,所述第一调用请求中携带有目标服务标识;生成验证信息,将所述验证信息发送给所述目标服务标识对应的目标服务;当接收到所述目标服务发送的携带有所述验证信息的第二调用请求时,将调用数据发送给所述目标服务;注销所述验证信息。可选地,所述接收第一调用请求之后,所述方法还包括:根据所述目标服务标识查询所述目标服务标识对应的目标服务的地址信息,若查询到,则获取所述目标服务标识对应的目标服务的地址信息;相应的,所述将所述验证信息发送给所述目标服务标识对应的目标服务,包括:根据所述目标服务的地址信息,将所述校验信息发送给所述目标服务。可选地,所述当接收到所述目标服务发送的携带有所述验证信息的第二调用请求时,将调用数据发送给所述目标服务,包括:当接收到所述目标服务发送的携带有所述验证信息的第二调用请求时,对所述验证信息进行有效性验证;如果验证成功,则将调用数据发送给所述目标服务。可选地,所述生成验证信息,包括:获取所述目标服务标识对应的目标服务的服务信息,所述服务信息包括所述地址信息和所述目标服务标识;根据所述目标服务的服务信息生成验证信息;或者,随机生成验证信息。可选地,所述注销所述验证信息,包括:删除所述验证信息;或者,将所述验证信息设置为不可用状态。可选地,所述接收第一调用请求,包括:接收调用预定接口的第一调用请求,所述预定接口为任意接口,或安全级别满足预设条件的接口;相应的,所述当接收到所述目标服务发送的携带有所述验证信息的第二调用请求时,将调用数据发送给所述目标服务,包括:当接收到所述目标服务发送的携带有所述验证信息的第二调用请求时,将调用数据通过所述预定接口发送给所述目标服务。本申请实施例提供的一种数据的获取装置,所述装置包括:调用请求接收模块,用于接收第一调用请求,所述第一调用请求中携带有目标服务标识;验证信息处理模块,用于生成验证信息,将所述验证信息发送给所述目标服务标识对应的目标服务;调用数据发送模块,用于当接收到所述目标服务发送的携带有所述验证信息的第二调用请求时,将调用数据发送给所述目标服务;注销模块,用于注销所述验证信息。可选地,所述装置还包括:查询模块,用于根据所述目标服务标识查询所述目标服务标识对应的目标服务的地址信息,若查询到,则获取所述目标服务标识对应的目标服务的地址信息;相应的,所述验证信息处理模块,用于根据所述目标服务的地址信息,将所述校验信息发送给所述目标服务。可选地,所述调用请求接收模块,用于接收调用预定接口的第一调用请求,所述预定接口为任意接口,或安全级别满足预设条件的接口;相应的,所述调用数据发送模块,用于当接收到所述目标服务发送的携带有所述验证信息的第二调用请求时,将调用数据通过所述预定接口发送给所述目标服务。本申请实施例提供一种数据的获取设备,所述设备包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:接收第一调用请求,所述第一调用请求中携带有目标服务标识;生成验证信息,将所述验证信息发送给所述目标服务标识对应的目标服务;当接收到所述目标服务发送的携带有所述验证信息的第二调用请求时,将调用数据发送给所述目标服务;注销所述验证信息。由以上本申请实施例提供的技术方案可见,本申请实施例通过接收的携带有目标服务标识的第一调用请求,进而生成验证信息,将该验证信息发送给目标服务标识对应的目标服务,当接收到目标服务发送的携带有该验证信息的第二调用请求时,将调用数据发送给目标服务,然后,注销该验证信息,这样,目标服务每次进行调用时,被调用的服务会生成一个验证信息,以使目标服务基于该验证信息再次请求进行调用处理,在验证信息使用完成后注销该验证信息,可见,本申请实施例中生成的验证信息只允许使用一次,从而使得其他的服务或者其他人很难对被调用的接口等进行伪装调用,可以确保调用数据不会由于被调用的接口被伪装调用而发生泄露,进而可以提高调用数据的安全性。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本申请一种数据的获取方法实施例;图2为本申请一种数据的获取系统的结构示意图;图3为本申请另一种数据的获取方法实施例;图4为本申请另一种数据的获取系统的结构示意图;图5为本申请再一种数据的获取方法实施例;图6为本申请一种soa松耦合的架构系统的结构示意图;图7为本申请一种数据的获取装置实施例;图8为本申请另一种数据的获取装置实施例;图9为本申请一种数据的获取设备实施例。具体实施方式本申请实施例提供一种数据的获取方法、装置及设备。为了使本
技术领域
的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。如图1所示,本申请实施例提供一种数据的获取方法,该方法可以应用于soa松耦合的架构系统中,其中,soa是一个组件模型,它将应用程序不同功能单元(称为服务)通过服务之间定义良好的接口或契约联系起来。soa松耦合的架构系统中的接口由于采用中立的方式进行定义,从而使得构建在soa松耦合的架构系统中的服务可以以一种统一和通用的方式进行交互。该方法的执行主体可以为soa松耦合的架构系统中的设备,如服务器或者终端设备等,其中,终端设备包括但不限于手机、平板电脑或个人计算机等。该方法具体可以包括以下步骤:在步骤s101中,接收第一调用请求,第一调用请求中携带有目标服务标识。其中,目标服务标识可以是与目标服务相关的信息,具体可以根据实际情况确定,例如,可以包括目标服务的服务名称、目标服务所在服务器或终端设备的mac(mediaaccesscontrol,介质访问控制)地址或ip(internetprotocol,网络之间互连的协议)地址中的一项或多项信息,本申请实施例对此不做限定。其中的目标服务可以是任意服务,例如,数据获取服务、登录服务、验证服务等,目标服务的具体存在形式可以是应用程序,也可以存在于服务器或终端设备等硬件设备中。在实施中,如图2所示,当用户需要获取某些较敏感或重要的信息(如个人的身份信息或联系方式等)时,可以通过终端设备(即目标服务所在的设备)向相应的服务器请求该信息,进而可以从该服务器中获取到需要的信息,具体地,例如,某用户为销售某种商品的销售人员,为了销售人员之间可以彼此联系或及时共享某些资源信息,可以开发设置相应的应用程序。当某销售人员需要从系统中获取某些潜在购买用户的联系方式信息时,可以点击该应用程序中的获取联系方式的相关按键,该应用程序可以生成联系方式获取请求。终端设备获取到该联系方式获取请求后,可以获取该应用程序对应的服务(即目标服务)的服务标识(即目标服务标识)、以及上述联系方式获取请求中的相关信息,使用上述信息可以生成第一调用请求,终端设备可以将第一调用请求发送给服务器。服务器可以接收到终端设备发送的第一调用请求。在步骤s102中,生成验证信息,将该验证信息发送给上述目标服务标识对应的目标服务。其中,验证信息可以是用于验证待验证者身份的相关信息,验证信息可以包括指定的字符串、目标服务名称和目标服务的mac地址中的一个或多个信息,此外,验证信息还可以是通过预定算法(如哈希算法等)对某些信息进行计算后得到的信息。而且,验证信息可以有多种展现形式,例如,签名、验证口令、密码或数据校验值等,本申请实施例对验证信息的组成和展现形式不做限定。在实施中,在接收到第一调用请求后,可以对第一调用请求进行分析,从中分析出需要调用的服务的标识,若判断出该标识对应的服务为预定服务(如转账服务或个人信息查询服务等),则为了保证信息交互的安全性,可以对请求相应数据的服务的身份进行验证,为此,可以通过预先设定的验证信息生成机制生成能够使用上述服务的验证信息。其中,验证信息生成机制可以根据实际情况进行设定,具体如可以随机生成一组字符串作为验证信息等。可以预先存储服务标识与服务的对应关系,可以如表1所示。表1服务服务标识a服务100b服务200c服务300可以从如上述表1所示的服务标识与服务的对应关系中查找目标服务标识,从而确定目标服务标识对应的目标服务。例如,目标服务标识为200,通过上述表1可以得到200对应的服务为b服务。然后,可以将生成的验证信息发送给目标服务标识对应的目标服务。在步骤s103中,当接收到目标服务发送的携带有上述验证信息的第二调用请求时,将调用数据发送给目标服务。其中,调用数据可以是与第二调用请求对应的数据,该调用数据可以是任意形式的数据,例如文字数据、代码或者两种组合后的数据等。第二调用请求可以是用于请求使用某一项服务的请求,第二调用请求与第一调用请求不同,基于上述相关内容可知,两者携带的信息不同,第二调用请求中不仅可以携带第一调用请求中携带的信息,更重要的是还携带有验证信息。在实施中,基于上述步骤s101的示例,当终端设备接收到服务器发送的验证信息后,可以获取上述应用程序对应的目标服务的目标服务标识,以及上述联系方式获取请求中的相关信息,使用上述获取的信息和验证信息可以生成第二调用请求,终端设备可以将第二调用请求发送给服务器。服务器可以接收终端设备发送的第二调用请求,此时,服务器可以从第二调用请求中提取验证信息,可以对该验证信息进行验证,如可以获取验证信息的信息标识,以及验证信息中的信息内容,可以从预先存储的验证信息中获取与上述信息标识对应的验证信息,并获取该验证信息的信息内容,可以将该验证信息的信息内容与接收到的验证信息的信息内容相比较,如果两者相同,则验证通过,此时,可以获取第二调用请求对应的调用数据,可以将该调用数据发送给目标服务。如果两者不同,则验证失败,此时,服务器可以向终端设备发送验证失败的通知消息,以便销售人员可以调整或检查终端设备,并可以再次向服务器发起调用请求,即上述步骤s101~步骤s103的处理。需要说明的是,发送给目标服务的验证信息是缓存在其内存中,而不会存储在其固定存储设备(如硬盘等)中,目标服务可以使用内存中的验证信息进行相应的计算等操作。当目标服务所在的设备到达内存回收周期时,如果该验证信息处于未使用状态,则该验证信息可以被该设备回收并销毁,因此,目标服务侧不会存储有验证信息。在步骤s104中,注销该验证信息。在实施中,为了避免他人盗用上述验证信息向目标服务请求相应的数据而造成重要或敏感的信息被泄露,每当目标服务发送第二调用请求以得到相应的调用数据,或者得到验证失败的通知消息后,服务器可以将该验证信息从其存储设备中删除,即生成的验证信息只能允许使用一次,这样,可以避免因他人盗用验证信息而造成重要或敏感的信息泄露的情况发生。需要说明的是,上述在接收到第二调用请求之后,所执行的将调用数据发送给目标服务的步骤,以及注销验证信息的步骤,其先后顺序也可以不进行具体限定。本领域技术人员容易想到上述两个步骤可以同时进行,也可以如上述所示以先后顺序进行,其不影响本发明技术目的和有益效果。需要说明的是,本申请实施例尽管以应用于soa松耦合的架构系统中为例进行说明,在实际应用中,本申请实施例提供的数据的获取方法不仅仅可以应用于soa松耦合的架构系统中,还可以应用于调用数据是敏感或重要数据的任何其它系统中,或者是任意需要对调用数据的调用者身份进行验证的情况,甚至可以是任意数据系统中。本申请实施例提供一种数据的获取方法,通过接收的携带有目标服务标识的第一调用请求,进而生成验证信息,将该验证信息发送给目标服务标识对应的目标服务,当接收到目标服务发送的携带有该验证信息的第二调用请求时,将调用数据发送给目标服务,然后,注销该验证信息,这样,目标服务每次进行调用时,被调用的服务会生成一个验证信息,以使目标服务基于该验证信息再次请求进行调用处理,在验证信息使用完成后注销该验证信息,可见,本申请实施例中生成的验证信息只允许使用一次,从而使得其他的服务或者其他人很难对被调用的接口等进行伪装调用,可以确保调用数据不会由于被调用的接口被伪装调用而发生泄露,进而可以提高调用数据的安全性。如图3所示,本申请实施例提供了一种数据的获取方法。该方法的执行主体可以为预定接口被调用方对应的服务所在的服务器或终端设备,其中,终端设备可以包括但不限于手机、平板电脑和个人计算机等。本申请实施例中,以调用方对应目标服务,目标服务所在的设备为终端设备,且被调用方对应的服务所在的设备为服务器为例进行详细说明,对于其它执行主体的情况,可以参照本申请实施例执行,在此不再赘述。本申请实施例提供的一种数据的获取方法,以执行主体为终端设备为例,该方法具体可以包括如下步骤:在步骤s301中,接收调用预定接口的第一调用请求,第一调用请求中携带有目标服务标识。其中,本实施例中的接口,可以是由一套陈述、功能、选项或其它可以表达程序结构的形式、应用程序或者编程语言提供的数据而组成。不同的应用程序之间、不同的设备之间,以及同一应用程序的客户端和服务端之间通常都会设置有接口,用于信息交互,具体可以如api(applicationprogramminginterface,应用程序接口)等。本实施例中的预定接口,是指为了保证服务之间信息交互的安全性而定义的接口。某个服务中的预定接口可以是该服务中的全部接口,也可以是该服务中安全级别满足预设条件的接口。例如,在一种应用环境下,某服务中的全部接口都需要确保安全性,则该服务的全部接口均为预定接口。在另一种应用环境下,某服务中的部分接口可以不考虑安全性,而其他接口需要确保安全性,则可以对各个接口设置安全级别,对于安全级高于预设条件的接口,采用安全调用的方式进行调用(结合下文详述),而对于不需考虑安全性的接口,可以采用常规方式直接调用。由此可以提高服务间接口调用策略的灵活性。预定接口可以为任意接口,或安全级别满足预设条件的接口。对于预定接口为安全级别满足预设条件的接口的情况,可以将各个服务中的接口设置相应的安全等级,例如,可以根据接口传输的数据的重要性或敏感性划分接口的安全等级,这样可以将用于提供或获取某些较敏感或重要数据的接口设定较高的安全级别,将用于提供或获取某些公共数据的接口设定较低的安全级别。预设条件可以根据实际情况进行设定,具体如安全级别不小于预定的安全阈值,安全阈值可以根据实际情况或根据日常使用经验确定,如最高的安全级别为10,最低的安全级别为1,则安全阈值可以为7或8等。在实施中,对于预定接口为任意接口的情况,步骤s301的处理可以参见上述步骤s101的相关内容,在此不再赘述。对于预定接口为安全级别满足预设条件的接口的情况,例如,用户需要从云端获取某一项重要数据,此时,用户可以启动终端设备中安装的应用程序,该应用程序可以生成首页数据获取请求发送给服务器(即云端),服务器接收到该首页数据获取请求后,可以确定首页数据属于公共数据,其接口对应的安全等级较低,因此,可以直接将首页数据发送给终端设备,终端设备可以显示首页数据。首页数据中可以包括上述重要数据的获取按键,用户可以点击该按键,该应用程序可以生成数据获取请求。终端设备获取到该数据获取请求后,可以获取上述重要数据对应的接口,然后,可以从预先存储的接口安全级别信息中获取该接口的安全级别,如果该接口的安全级别大于或等于预定的安全阈值,则可以将该接口确定为预定接口。终端设备可以获取该应用程序对应的目标服务的目标服务标识、该接口的接口标识,以及上述数据获取请求中的相关信息,并可以使用上述信息生成调用预定接口的第一调用请求,终端设备可以将第一调用请求发送给服务器,从而,服务器可以接收到终端设备发送的调用预定接口的第一调用请求。在步骤s302中,根据目标服务标识查询目标服务标识对应的目标服务的地址信息,若查询到,则获取目标服务标识对应的目标服务的地址信息。其中,地址信息可以包括网络地址的信息,如ip地址或imei(internationalmobileequipmentidentity,国际移动设备身份标识)码等。在实施中,为了防止他人冒用目标服务的相关信息(如目标服务标识),从服务器的预定接口获取相应的数据,可以存储能够访问预定接口的服务的服务标识,以及该服务所在的地址信息,具体存储方式可以是以数据库的形式,即如图4所示,可以预先设置用于存储上述信息的服务地址数据库,该服务地址数据库可以作为公共数据库存储在指定的存储设备(例如图4中的数据库服务器)中。这样,服务器接收到第一调用请求后,可以不使用第一调用请求中可能携带的地址信息向请求者交互相应的数据,而是从服务地址数据库中查找目标服务的地址信息,以便后续通过该地址信息进行数据交互,从而提高系统的安全性。该服务地址数据库可以为任意请求者提供相应的服务。若地址信息为ip地址,则该服务地址数据库具体可以如表2所示。表2服务服务标识地址信息m服务10110.52.62.125n服务30154.85.23.85k服务5010.59.68.26服务器接收到调用预定接口的第一调用请求后,可以从第一调用请求中提取目标服务标识。使用目标服务标识可以从如上述表2所示的服务地址数据库中查找该目标服务标识,如果能够从服务地址数据库中查找到目标服务标识,则可以获取目标服务标识对应的目标服务的地址信息,例如,目标服务标识为50,则可以确定其对应的目标服务为k服务,相应的,其对应的地址信息可以为10.59.68.26。如果从服务地址数据库中没有查找到目标服务标识,则可以确定目标服务没有权限访问预定接口。此时,服务器可以向终端设备发送拒绝访问的通知消息,以通知调用方没有访问预定接口提供的数据的权限。上述实施例一中步骤s102的生成验证信息的处理可以包括多种实现方式,以下提供一种可选的实现方式,可以参见下述步骤s303和步骤s304的处理。在步骤s303中,获取目标服务标识对应的目标服务的服务信息,该服务信息包括上述地址信息和目标服务标识。在实施中,为了进一步保证系统中相互调用的安全性,可以设定验证信息生成机制。验证信息生成机制可以包括多种实现方式,例如,使用目标服务的相关信息生成、使用目标服务的相关信息和服务器中相应的服务的相关信息生成或随机生成等。考虑到验证信息主要是对目标服务的身份进行验证,因此,为了本申请实施例的简单可行,可以使用目标服务的相关信息生成验证信息。当服务器得到目标服务的地址信息后,服务器可以获取包括地址信息和目标服务标识等信息在内的目标服务的服务信息。在步骤s304中,根据目标服务的服务信息生成验证信息。在实施中,服务器可以使用目标服务的服务信息采用预先设置的算法规则进行计算,得到验证信息,具体如,服务器可以服务信息中摘取一定的摘要信息,可以使用该摘要信息通过哈希算法计算该服务信息的哈希值(如md5(message-digestalgorithm5,信息-摘要算法5)值等),可以将该哈希值作为验证信息。在步骤s305中,根据目标服务的地址信息,将上述校验信息发送给目标服务。在实施中,根据前述相关内容,为了防止他人冒用目标服务的相关信息,从服务器的预定接口获取相应的数据,可以将上述验证信息通过查找到的目标服务的地址信息发送给目标服务(即终端设备),从而保证从预订接口交互的调用数据的安全。在步骤s306中,当接收到目标服务发送的携带有上述验证信息的第二调用请求时,对该验证信息进行有效性验证。在实施中,终端设备接收到服务器发送的验证信息后,可以基于该验证信息生成第二调用请求,具体处理可以参见上述实施例一中步骤s103的处理,在此不再赘述。终端设备生成第二调用请求后,可以将其发送给服务器。服务器接收到第二调用请求后,可以从中提取验证信息,并对该验证信息的有效性进行验证,如果确定该验证信息有效,则可确定验证成功,此时可以执行下述步骤s307的处理;如果确定该验证信息无效,则可确定验证失败,此时可以向终端设备发送验证失败的通知消息,同时,可以执行下述步骤s308的处理。终端设备接收到上述通知消息后,可以显示该通知消息,以便调用方可以及时了解数据交换的情况。如果验证失败,调用方可以重新进行上述步骤s301~步骤s306的处理,直到验证成功或放弃获取该项重要数据的操作。在步骤s307中,如果验证成功,则将调用数据发送给目标服务。步骤s307的处理可以参见上述实施例一中步骤s103的相关内容,在此不再赘述。对于上述预定接口的处理,上述步骤s307具体可以为:如果验证成功,则将调用数据通过预定接口发送给目标服务。在步骤s308中,删除上述验证信息;或者,将该验证信息设置为不可用状态。在实施中,为了避免他人盗用上述验证信息向预定接口请求相应的数据而造成重要或敏感的信息被泄露,可以设定每个验证信息只能允许使用一次,这样,当目标服务发送第二调用请求得到相应的调用数据或验证失败的通知消息后,服务器可以将该验证信息删除,或者,也可以将该验证信息设置为不可用状态,以此使得该验证信息失效。当然,除了上述使得该验证信息失效的处理方式外,还可以包括多种实现方式,在此不再赘述。需要说明的是,上述步骤s303~步骤s308的处理可以通过分别预先设置在终端设备侧和服务器侧的逻辑执行程序进行,具体如sdk(softwaredevelopmentkit,软件开发工具包),即终端设备和服务器中都分别设置有相应的sdk(该sdk可以是在安装上述应用程序时植入到终端设备和服务器中的),通过该sdk可以完成上述步骤s303~步骤s308的处理,而使得调用方和被调用方不会感知,提高用户体验。本申请实施例提供一种数据的获取方法,通过接收的携带有目标服务标识的第一调用请求,进而生成验证信息,将该验证信息发送给目标服务标识对应的目标服务,当接收到目标服务发送的携带有该验证信息的第二调用请求时,将调用数据发送给目标服务,然后,注销该验证信息,这样,目标服务每次进行调用时,被调用的服务会生成一个验证信息,以使目标服务基于该验证信息再次请求进行调用处理,在验证信息使用完成后注销该验证信息,可见,本申请实施例中生成的验证信息只允许使用一次,从而使得其他的服务或者其他人很难对被调用的接口等进行伪装调用,可以确保调用数据不会由于被调用的接口被伪装调用而发生泄露,进而可以提高调用数据的安全性。以下结合具体的应用场景,对本发明实施例提供的一种数据的获取方法进行详细的阐述,相应的应用场景为:若存在a服务和b服务,其中a服务和b服务都是soa松耦合系统构架中的两个子工程或子服务,a服务和b服务可以分别设置于不同的服务器或终端设备中,或者,其中一个服务设置于服务器,另一个服务设置于终端设备中。其中,a服务和b服务可以是任意服务。如图5所示,本申请实施例提供了一种数据的获取方法,该方法可以由a服务和b服务分别所在的设备共同执行。本申请实施例中,a服务可以是目标服务,b服务可以是被调用方对应的服务,验证信息为签名。本申请实施例提供的一种数据的获取方法具体可以包括如下步骤:在步骤s501中,a服务向b服务发送调用预定接口的第一调用请求,第一调用请求中携带有a服务的服务标识。其中,预定接口为任意接口,或安全级别满足预设条件的接口。在实施中,b服务提供了一个接口(即预定接口),a服务需要调用该预定接口获取相应的数据(即调用数据),而该预定接口所输出的数据对数据的安全性有很高的要求(如上述敏感数据或重要数据等),此时,a服务可以使用a服务的服务标识、a服务的地址信息等生成调用预定接口的第一调用请求,发送给b服务。在步骤s502中,b服务接收到第一调用请求后,根据a服务的服务标识查询a服务的地址信息,若查询到,则获取a服务的地址信息。在实施中,考虑到很有可能会存在其他人(如黑客或者除了a服务以外的其它服务对应的用户等)冒用a服务的相关信息(如a服务的服务标识),并提供能够获取调用数据的地址信息(非a服务的地址信息)给b服务,这样,上述冒用者可以冒用a服务向b服务请求相应的数据,以使b服务将相应的调用数据通过提供的地址信息返回给冒用者,为了避免上述问题产生,b服务接收到第一调用请求后,不是直接返回调用数据,而是到公共寻址库中查找a服务的地址信息,具体地,如图6所示,b服务可以通过第一调用请求中提供的a服务的服务标识,从预先存储的能够调用预定接口的各服务的地址信息的数据库(即公共寻址库)中查找a服务的地址信息,如果没有查询到,则表示a服务不能访问b服务的预定接口,如果能够查询到,则可以获取a服务的地址信息。在步骤s503中,b服务获取到a服务的地址信息后,通过a服务的地址信息向a服务发送已获取到a服务的地址信息的通知消息。在步骤s504中,b服务随机生成签名。需要说明的是,生成签名的实现方式可以多种多样,除了上述实现方式外,还可以通过以下方式实现,具体可以包括以下内容:获取a服务的服务信息,该服务信息可以包括a服务的地址信息和a服务的服务标识;根据a服务的服务信息生成签名。其中,a服务的服务标识包括但不限于a服务的名称、a服务所在的设备的ip地址、mac地址等。在步骤s505中,b服务根据a服务的地址信息,将上述签名发送给a服务。在步骤s506中,a服务接收到上述签名后,生成携带有该签名的第二调用请求,并将其发送给b服务。在步骤s507中,b服务接收到第二调用请求后,对上述签名进行有效性验证。在步骤s508中,如果验证成功,则b服务将调用数据通过上述预定接口发送给a服务。在步骤s509中,b服务删除上述签名。上述步骤s505~步骤s509的处理可以参见上述实施例一和实施例二中的相关内容,在此不再赘述。需要说明的是,上述交互过程可以通过一套完整的功能的sdk,sdk会具备上述步骤s504~步骤s509的整个调用过程中的签名生成与销毁等功能。其中,sdk可以通过任意编程语言编写,例如java编程语言等。此外,公共寻址库可以为mysql数据库等。本申请实施例提供一种数据的获取方法,通过接收的调用预定接口的携带有目标服务标识的第一调用请求,进而生成验证信息,将该验证信息发送给目标服务标识对应的目标服务,当接收到目标服务发送的携带有该验证信息的第二调用请求时,将调用数据通过预定接口发送给目标服务,注销该验证信息,这样,目标服务每次调用预定接口时,被调用接口的服务会生成一个验证信息,以使目标服务基于该验证信息再次请求调用预定接口,在验证信息使用完成后注销该验证信息,可见,本申请实施例中生成的验证信息只允许使用一次,从而使得其他的服务或者其他人很难对预定接口进行伪装调用,可以确保调用数据不会由于预定接口被伪装调用而发生泄露,进而可以提高调用数据的安全性。以上为本申请实施例提供的数据的获取方法,基于同样的思路,本申请实施例还提供一种数据的获取装置,如图7所示。所述数据的获取装置包括:调用请求接收模块701、验证信息处理模块702、调用数据发送模块703和注销模块704,其中:调用请求接收模块701,用于接收第一调用请求,所述第一调用请求中携带有目标服务标识;验证信息处理模块702,用于生成验证信息,将所述验证信息发送给所述目标服务标识对应的目标服务;调用数据发送模块703,用于当接收到所述目标服务发送的携带有所述验证信息的第二调用请求时,将调用数据发送给所述目标服务;注销模块704,用于注销所述验证信息。本申请实施例中,如图8所示,所述装置还包括:查询模块705,用于根据所述目标服务标识查询所述目标服务标识对应的目标服务的地址信息,若查询到,则获取所述目标服务标识对应的目标服务的地址信息;相应的,所述验证信息处理模块702,用于根据所述目标服务的地址信息,将所述校验信息发送给所述目标服务。本申请实施例中,所述调用数据发送模块703,包括:验证单元,用于当接收到所述目标服务发送的携带有所述验证信息的第二调用请求时,对所述验证信息进行有效性验证;调用数据发送单元,用于如果验证成功,则将调用数据发送给所述目标服务。本申请实施例中,所述验证信息处理模块702,用于获取所述目标服务标识对应的目标服务的服务信息,所述服务信息包括所述地址信息和所述目标服务标识;根据所述目标服务的服务信息生成验证信息;或者,随机生成验证信息。本申请实施例中,所述注销模块704,用于删除所述验证信息;或者,将所述验证信息设置为不可用状态。本申请实施例中,所述调用请求接收模块701,用于接收调用预定接口的第一调用请求,所述预定接口为任意接口,或安全级别满足预设条件的接口;相应的,所述调用数据发送模块703,用于当接收到所述目标服务发送的携带有所述验证信息的第二调用请求时,将调用数据通过所述预定接口发送给所述目标服务。本申请实施例提供一种数据的获取装置,通过接收的携带有目标服务标识的第一调用请求,进而生成验证信息,将该验证信息发送给目标服务标识对应的目标服务,当接收到目标服务发送的携带有该验证信息的第二调用请求时,将调用数据发送给目标服务,然后,注销该验证信息,这样,目标服务每次进行调用时,被调用的服务会生成一个验证信息,以使目标服务基于该验证信息再次请求进行调用处理,在验证信息使用完成后注销该验证信息,可见,本申请实施例中生成的验证信息只允许使用一次,从而使得其他的服务或者其他人很难对被调用的接口等进行伪装调用,可以确保调用数据不会由于被调用的接口被伪装调用而发生泄露,进而可以提高调用数据的安全性。以上为本申请实施例提供的数据的获取装置,基于同样的思路,本申请实施例还提供一种数据的获取设备,如图9所示。该数据的获取设备可以为上述实施例提供的终端设备或服务器等。数据的获取设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器901和存储器902,存储器902中可以存储有一个或一个以上存储应用程序或数据。其中,存储器902可以是短暂存储或持久存储。存储在存储器902的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对数据的获取设备中的一系列计算机可执行指令。更进一步地,处理器901可以设置为与存储器902通信,在数据的获取设备上执行存储器902中的一系列计算机可执行指令。数据的获取设备还可以包括一个或一个以上电源903,一个或一个以上有线或无线网络接口904,一个或一个以上输入输出接口905,一个或一个以上键盘906。具体在本实施例中,数据的获取设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对数据的获取设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:接收第一调用请求,所述第一调用请求中携带有目标服务标识;生成验证信息,将所述验证信息发送给所述目标服务标识对应的目标服务;当接收到所述目标服务发送的携带有所述验证信息的第二调用请求时,将调用数据发送给所述目标服务;注销所述验证信息。可选地,所述可执行指令在被执行时,还可以使所述处理器:根据所述目标服务标识查询所述目标服务标识对应的目标服务的地址信息,若查询到,则获取所述目标服务标识对应的目标服务的地址信息;相应的,所述将所述验证信息发送给所述目标服务标识对应的目标服务,包括:根据所述目标服务的地址信息,将所述验证信息发送给所述目标服务。可选地,所述可执行指令在被执行时,还可以使所述处理器:当接收到所述目标服务发送的携带有所述验证信息的第二调用请求时,对所述验证信息进行有效性验证;如果验证成功,则将调用数据发送给所述目标服务。可选地,所述可执行指令在被执行时,还可以使所述处理器:获取所述目标服务标识对应的目标服务的服务信息,所述服务信息包括所述地址信息和所述目标服务标识;根据所述目标服务的服务信息生成验证信息;或者,随机生成验证信息。可选地,所述可执行指令在被执行时,还可以使所述处理器:删除所述验证信息;或者,将所述验证信息设置为不可用状态。可选地,所述可执行指令在被执行时,还可以使所述处理器:接收调用预定接口的第一调用请求,所述预定接口为任意接口,或安全级别满足预设条件的接口;相应的,所述当接收到所述目标服务发送的携带有所述验证信息的第二调用请求时,将调用数据发送给所述目标服务,包括:当接收到所述目标服务发送的携带有所述验证信息的第二调用请求时,将调用数据通过所述预定接口发送给所述目标服务。本申请实施例提供一种数据的获取设备,通过接收的携带有目标服务标识的第一调用请求,进而生成验证信息,将该验证信息发送给目标服务标识对应的目标服务,当接收到目标服务发送的携带有该验证信息的第二调用请求时,将调用数据发送给目标服务,然后,注销该验证信息,这样,目标服务每次进行调用时,被调用的服务会生成一个验证信息,以使目标服务基于该验证信息再次请求进行调用处理,在验证信息使用完成后注销该验证信息,可见,本申请实施例中生成的验证信息只允许使用一次,从而使得其他的服务或者其他人很难对被调用的接口等进行伪装调用,可以确保调用数据不会由于被调用的接口被伪装调用而发生泄露,进而可以提高调用数据的安全性。在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmablelogicdevice,pld)(例如现场可编程门阵列(fieldprogrammablegatearray,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logiccompiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardwaredescriptionlanguage,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc625d、atmelat91sam、microchippic18f26k20以及siliconelabsc8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1