发明内容
本发明实施例所要解决的技术问题在于,提供一种非法访问服务器防止方法以及装置,能够识别请求是否合法,避免用户信息外泄。
本发明提供了一种非法访问服务器防止方法,包括:
智能终端获取请求参数,其中,所述请求参数为所述智能终端准备向服务器发出的第一访问请求中携带的参数,所述请求参数包含所述智能终端与所述服务器通信的接口的参数;
所述智能终端通过MD5算法将所述请求参数加密生成第一数字签名串,并将所述第一数字签名串封装到所述第一访问请求中,以将所述第一访问请求向所述服务器发送;
所述服务器接收具有所述第一数字签名串的第二访问请求,并从所述第二访问请求中解封装得到请求参数;
所述服务器通过所述MD5算法将从所述第二访问请求中解封装得到的请求参数加密生成第二数字签名串;
所述服务器判断所述第一数字签名串和所述第二数字签名串是否一致,如果是,则判断根据所述第二访问请求即为所述第一访问请求,所述服务器允许所述智能终端进行访问。
可选地,所述请求参数包括包含所述智能终端与所述服务器通信的接口的参数在内的多个参数,所述智能终端通过MD5算法将所述请求参数加密生成第一数字签名串包括:
将所述请求参数中的多个参数通过预设符号连接起来。
可选地,所述请求参数包括应用软件标识、软件版本号、国际语言编码、接口的参数。
可选地,所述将所述请求参数中的多个参数通过预设符号连接起来之前还包括:
将所述请求参数中的多个参数按照预设顺序排列。
可选地,所述请求参数中的多个参数按照预设顺序排列包括:
将所述请求参数中的多个参数按照字母顺序排列。
一种非法访问服务器防止装置,包括:
获取单元,用于获取请求参数,其中,所述请求参数为所述智能终端准备向服务器发出的第一访问请求中携带的参数,所述请求参数包含所述智能终端与所述服务器通信的接口的参数;
生成封装单元,用于通过MD5算法将所述请求参数加密生成第一数字签名串,并将所述第一数字签名串封装到所述第一访问请求中;
发送单元,用于将所述第一访问请求向所述服务器发送;
接收单元,用于接收具有所述第一数字签名串的第二访问请求,并从所述第二访问请求中解封装得到请求参数;
解封生成单元,用于通过所述MD5算法将从所述第二访问请求中解封装得到的请求参数加密生成第二数字签名串;
判断单元,用于判断所述第一数字签名串和所述第二数字签名串是否一致,如果是,则判断根据所述第二访问请求即为所述第一访问请求,所述服务器允许所述智能终端进行访问。
可选地,所述请求参数包括包含所述智能终端与所述服务器通信的接口的参数在内的多个参数,所述生成封装单元还用于,
将所述请求参数中的多个参数通过预设符号连接起来。
可选地,所述请求参数包括应用软件标识、软件版本号、国际语言编码、接口的参数。
可选地,所述生成封装单元还用于,
将所述请求参数中的多个参数按照预设顺序排列。
可选地,所述请求参数中的多个参数按照预设顺序排列包括:
将所述请求参数中的多个参数按照字母顺序排列。
上述发明,智能终端获取请求参数,并通过MD5算法将请求参数加密生成第一数字签名串,并将第一数字签名串封装到第一访问请求中,将第一访问请求向服务器发送;服务器接收具有第一数字签名串的第二访问请求,并从第二访问请求中解封装得到请求参数,并通过MD5算法将从第二访问请求中解封装得到的请求参数加密生成第二数字签名串,判断第一数字签名串和第二数字签名串是否一致,如果是,则判断根据第二访问请求即为第一访问请求,服务器允许智能终端进行访问。通过上述方法能够识别请求是否合法,避免用户信息外泄。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,图1是本发明一种非法访问服务器防止方法实施方式的流程图。该方法包括:
步骤S101:智能终端获取请求参数。
智能终端与服务器的交互接口大部分是以http方式实现。http请求方式有两种,一种是GET方式,请求参数会用“?”作为分隔符跟在请求资源后面;另一种是POST方式,请求参数放在了最后面的位置。
具体地,请求参数为智能终端准备向服务器发出的第一访问请求中携带的参数,该请求参数包含智能终端与服务器通信的接口的参数,包括应用软件标识、软件版本号、国际语言编码、接口的参数等等,应用软件标识是用来表示应用软件的一个符号,每个应用软件对应唯一的标识号;软件版本号是软件名称后面的一些英文和数字,为软件版本的标志;国际语言编码用于表示文档的语言编码;接口是智能终端与服务器间通信的通道,接口的参数包含了发出请求的用户信息。智能终端可以通过request对象调用相关方法来获取请求参数。
步骤S102:智能终端通过MD5算法将请求参数加密生成第一数字签名串,并将该第一数字签名串封装到第一访问请求中。
数字签名(又称公钥数字签名、电子签章)是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被他人进行伪造,同时也是对信息的发送者发送信息真实性的一个有效证明。它是对电子形式的消息进行签名的一种方法,一个签名消息能在一个通信网络中传输。
MD5(MessageDigestAlgorithm5)(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。MD5就可以为任何文件(不管其大小、格式、数量)产生一个同样独一无二的MD5值,也可以称为“数字指纹”,如果任何人对文件做了任何改动,其MD5值也就是对应的“数字指纹”都会发生变化。
具体地,请求参数可以包含多个参数,智能终端可以选取其中的部分或全部参数,通过MD5算法将请求参数中的部分或全部参数加密生成第一数字签名串,第一数字签名串即为该请求参数的“数字指纹”,用于保护请求参数的完整,然后,将该第一数字签名串封装到第一访问请求中。
需要说明的是,通过MD5算法加密的多个参数在加密之前可以按照预设顺序排列,例如将多个参数按照首字母的字母顺序排列,也可以将多个参数用连接符号将多个参数连接起来,该连接符号可以是特定的字母、数字或符号等等。例如,假设请求参数中appID=ebcad75de0d42a844d98a755644e30(应用唯一标识号)、softwareVersion=1.0.1(软件版本号)、lanCode=zh-cn(国际语言编码)、restKey=user.login(接口的参数),在进行MD5加密之前,根据等号前的参数按字母顺序排序,并用&符号连接得到排序连接后的请求参数appID=ebcad75de0d42a844d98a755644e30&lanCode=zh-cn&restKey=user.login&softwareVersion=1.0.1,然后对排序连接后的请求参数进行MD5加密,得到第一数字签名串。
步骤S103:智能终端向服务器发送第一访问请求。
具体地,智能终端可以通过有线网、无线网或移动网等等向服务器发送第一访问请求。
步骤S104:服务器接收具有第一数字签名串的第二访问请求,并从第二访问请求中解封装得到请求参数。
具体地,服务器不能判定所接收的具有第一数字签名串的第二访问请求是否为第一访问请求,第一访问请求中的请求参数也可能已经被修改,服务器接收具有第一数字签名串的第二访问请求,并从第二访问请求中解封装得到该第二访问请求所包含的请求参数。
步骤S105:服务器通过MD5算法将从第二访问请求中解封装得到的请求参数加密生成第二数字签名串。
具体地,第二访问请求中解封装得到的请求参数可以包含多个参数,服务器可以选取其中的部分或全部参数,需要说明的是,服务器所选取的部分或全部参数与步骤S102中智能终端选取的部分或全部参数类型一致,通过MD5算法将请求参数中的部分或全部参数加密生成第二数字签名串,还需要说明的是,步骤S105中的MD5算法和步骤S102中的MD5算法一致。
还需要说明的是,步骤S102中,如果通过MD5算法加密的多个参数在加密之前按照预设顺序排列,那么步骤S105中,服务器通过MD5算法加密的多个参数之前也需要按照与步骤S102中相同的预设顺序排列。
步骤S106:服务器判断第一数字签名串和第二数字签名串是否一致。
具体地,服务器判断第一数字签名串和第二数字签名串是否一致,如果是,则第二访问请求即为第一访问请求,该第一访问请求未被篡改,为合法请求,允许智能终端进行访问;否则,第二访问请求不是第一访问请求,该第一访问请求已被篡改,为非法请求,不允许该智能终端进行访问。
具体地,智能终端根据第一访问请求中的请求参数通过MD5算法得出的第一数字签名串是唯一的,并且MD5加密的过程是不可逆的。当第一访问请求被他人获取并修改为第二访问请求后,其中,第二访问请求中的请求参数与第一访问请求中的请求参数不一致,它们接口的参数不同。MD5算法是根据请求参数的内容加密生成的数字签名串,当请求参数发生变化后,通过MD5算法生成的数字签名串也将发生变化。服务器接收第二访问请求后,如果第二访问请求中的请求参数与第一访问请求中的请求参数不一致,那么根据第二访问请求中的请求参数所得到的第二数字签名串与第一数字签名串不一致。就可以知道,有黑客意图通过抓包工具抓取到APP客户端发出的请求连接以获取用户在服务器中储存的信息。
步骤S107:允许智能终端进行访问。
具体地,如果第一数字签名串和第二数字签名串一致,则第二访问请求即为第一访问请求,该第一访问请求未被篡改,为合法请求,允许智能终端进行访问。
上述发明,智能终端获取请求参数,并通过MD5算法将请求参数加密生成第一数字签名串,并将第一数字签名串封装到第一访问请求中,将第一访问请求向服务器发送;服务器接收具有第一数字签名串的第二访问请求,并从第二访问请求中解封装得到请求参数,并通过MD5算法将从第二访问请求中解封装得到的请求参数加密生成第二数字签名串,判断第一数字签名串和第二数字签名串是否一致,如果是,则判断根据第二访问请求即为第一访问请求,服务器允许智能终端进行访问。通过上述方法能够识别请求是否合法,避免用户信息外泄。
请参见图2,图2是本发明一种非法访问服务器防止装置实施方式的结构示意图,该装置200包括:获取单元201、生成封装单元202、发送单元203、接收单元204、解封生成单元205以及判断单元206。
获取单元201,用于获取请求参数,其中,请求参数为智能终端准备向服务器发出的第一访问请求中携带的参数,请求参数包含智能终端与服务器通信的接口的参数。
生成封装单元202,用于通过MD5算法将请求参数加密生成第一数字签名串,并将第一数字签名串封装到第一访问请求中。
发送单元203,用于将第一访问请求向服务器发送。
接收单元204,用于接收具有第一数字签名串的第二访问请求,并从第二访问请求中解封装得到请求参数。
解封生成单元205,用于通过MD5算法将从第二访问请求中解封装得到的请求参数加密生成第二数字签名串。
判断单元206,用于判断第一数字签名串和第二数字签名串是否一致,如果是,则判断根据第二访问请求即为第一访问请求,服务器允许智能终端进行访问。
可选地,请求参数包括包含智能终端与服务器通信的接口的参数在内的多个参数,生成封装单元202还用于,
将请求参数中的多个参数通过预设符号连接起来。
可选地,请求参数包括应用软件标识、软件版本号、国际语言编码、接口的参数。
可选地,生成封装单元202还用于,
将请求参数中的多个参数按照预设顺序排列。
可选地,请求参数中的多个参数按照预设顺序排列包括:
将请求参数中的多个参数按照字母顺序排列。
需要说明的是,获取单元201、生成封装单元202以及发送单元203位于智能终端;接收单元204、解封生成单元205以及判断单元206位于服务器。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为根据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。本领域的技术人员可以将本说明书中描述的不同实施例以及不同实施例的特征进行结合或组合。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可以用硬件实现,或固件实现,或它们的组合方式来实现。当使用软件实现时,可以将上述功能存储在计算机可读介质中或作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是计算机能够存取的任何可用介质。以此为例但不限于:计算机可读介质可以包括随机存取存储器(RandomAccessMemory,RAM)、只读存储器(Read-OnlyMemory,ROM)、电可擦可编程只读存储器(ElectricallyErasableProgrammableRead-OnlyMemory,EEPROM)、只读光盘(CompactDiscRead-OnlyMemory,CD-ROM)或其他光盘存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。此外。任何连接可以适当的成为计算机可读介质。例如,如果软件是使用同轴电缆、光纤光缆、双绞线、数字用户线(DigitalSubscriberLine,DSL)或者诸如红外线、无线电和微波之类的无线技术从网站、服务器或者其他远程源传输的,那么同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线和微波之类的无线技术包括在所属介质的定影中。如本发明所使用的,盘(Disk)和碟(disc)包括压缩光碟(CD)、激光碟、光碟、数字通用光碟(DVD)、软盘和蓝光光碟,其中盘通常磁性的复制数据,而碟则用激光来光学的复制数据。上面的组合也应当包括在计算机可读介质的保护范围之内。
总之,以上所述仅为本发明技术方案的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。