CN112149068A - 基于访问的授权校验方法、信息的生成方法及装置、服务器 - Google Patents

基于访问的授权校验方法、信息的生成方法及装置、服务器 Download PDF

Info

Publication number
CN112149068A
CN112149068A CN201910569317.XA CN201910569317A CN112149068A CN 112149068 A CN112149068 A CN 112149068A CN 201910569317 A CN201910569317 A CN 201910569317A CN 112149068 A CN112149068 A CN 112149068A
Authority
CN
China
Prior art keywords
fields
access request
character string
access
groups
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910569317.XA
Other languages
English (en)
Inventor
于腾飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Shuan Xinyun Information Technology Co ltd
Original Assignee
Beijing Shuan Xinyun Information Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Shuan Xinyun Information Technology Co ltd filed Critical Beijing Shuan Xinyun Information Technology Co ltd
Priority to CN201910569317.XA priority Critical patent/CN112149068A/zh
Publication of CN112149068A publication Critical patent/CN112149068A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本文是关于鉴权操作技术,特别涉及一种基于访问的授权校验方法、信息的生成方法及装置、服务器。本文公开的一种基于访问的授权校验方法,包括:接收访问请求,从访问请求中提取用于授权校验的字符串;按照预设方式对字符串进行划分,得到多组字段,至少包括随机字段、创建时间、唯一标识和校验码,按照预设方式对得到的多组字段分别进行解析操作,得到各组字段对应的原始数据;根据所述原始数据校验所述访问请求的权限和合法性。本文中生成的字符串是不可读的,也就不存在暴露原始数据的规律,可以有效避免恶意用户暴力尝试和破解行为。

Description

基于访问的授权校验方法、信息的生成方法及装置、服务器
技术领域
本文涉及客户端鉴权操作技术,尤其涉及一种基于访问的授权校验方案及授权校验信息的生成方案。
背景技术
相关技术中,对于客户端鉴权的方式普通采用如下三种方式:
一、采用前端校验比较的方式确认当前操作是否是合法的或当前用户是否具备权限进行此操作。即,前端对操作用户权限、访问操作动作一一请求,获取数据,然后前端通过计算比较进行核对权限范围和合法性,进而确认当前操作是否可以进行。这种利用前端对请求数据进行比较核对的方式,存在恶意用户通过浏览器直接临时修改前端逻辑的问题,进而使前端所进行的权限核对及合法性判定变的没有任何意义,也就是说,可以使所有的请求通过临时修改逻辑以符合用户的操作权限范围并且是合法的行为。
二、采用双向加密解密方式,即是前端调用当前用户的权限信息时,采用后端进行加密后返回数据,前端获取到数据后,进行解密,然后仍然同上一中方式一样进行核对权限范围和合法性的比较确认。这种方式中,用户通过前端分析前端解密代码的业务逻辑,可以比较容易的反向推断出后端加密的方式,进而可以模拟伪造出对应加密信息,通过权限合法性的校验。
三、采用进行请求时,把当前操作用户的代表标志通过cookie方式传输到后端,然后由后端对下层存储设备或缓存设备进行计算和请求,然后由后端进行核对当前用户是否拥有此请求的权限和合法性,如果合法则请求成功并返回对应请求的结果信息。如果请求非法或者不在操作用户的范围之内,则返回错误提示,前端进行二次提示。可见,这种方式下的鉴权过程需要多次调用存储设备或第三方接口,如果调用频率高,则会对服务端的CPU和IO造成一定的压力。并且,采用请求携带cookie的方式可能存在一个严重的安全漏洞。即如果请求接口存在可以遍历的编号,比如获取指定用户的信息接口/api/user/123,那么恶意用户就可以脚本遍历所有的用户,比如通过脚本调用/api/user/124,/api/user/125,……进而暴力获取其他用户信息。
发明内容
为克服相关技术中存在的问题,本文提供一种基于访问的授权校验方法、信息的生成方法及装置、服务器。
根据本文的第一方面,提供一种基于访问的授权校验方法,包括:
接收访问请求,从所述访问请求中提取用于授权校验的字符串;
按照预设方式对所述字符串进行划分,得到多组字段,按照预设方式对得到的多组字段分别进行解析操作,得到各组字段对应的原始数据;
根据所述原始数据校验所述访问请求的权限和合法性;
其中,对所述字符串进行划分得到的多组字段至少包括:随机字段、创建时间、唯一标识和校验码。
可选地,上述方法中,所述按照预设方式对所述字符串进行划分,包括:
在所述字符串中查找预设的固定字符,将查找到的每个固定字符做为划分标识,将所述字符串划分为多组字段,其中,划分得到的每组字段中不包含所述固定字符。
可选地,上述方法中,从所述访问请求中提取字符串,包括:
从所述访问请求的设定位置中提取所述字符串,所述设定位置包括如下任一种或几种:
访问请求的path、访问请求的query string、访问请求的header,访问请求的body。
可选地,上述方法中,对所述字符串进行划分得到的多组字段,还包括如下一种或几种字段:
过期时间、冗余字段、类型。
可选地,上述方法中,所述根据所述原始数据校验所述访问请求的权限和合法性,包括:
将所述原始数据,与已获取的所述访问请求的用户权限信息进行比较,验证所述访问请求的合法性和/或用户的授权权限。
可选地,上述方法中,对所述字符串进行划分,得到多组字段后,该方法还包括:
从所述字符串中获取扩展标识,所述扩展标识用于指示授权校验的扩展信息。
根据本文的另一方面,提供一种基于访问的授权校验信息的生成方法,包括:
针对客户端待发起的操作,获取所述操作对应的原始数据,所述原始数据用于校验所述操作的权限和合法性;
将所获取的原始数据分别按照预设方式进行编码,编码后得到多组字段,其中,所得到的多组字段至少包括:随机字段、创建时间、唯一标识和校验码;
将所得到的多组字段按照预设方式进行组合,生成字符串;
将所述字符串嵌入访问请求中反馈给所述客户端,用于指示所述客户端按照所述访问请求发起操作请求。
可选地,上述方法中,所述将所得到的多组字段按照预设方式进行组合,生成字符串,包括:
将所得到的多组字段按照设定顺序依次组合,在每组字段之间添加预设的固定字符,最终生成所述字符串。
可选地,上述方法中,将所述字符串嵌入访问请求中,包括:
将所述字符串嵌入访问请求的设定位置中,所述设定位置包括如下任一种或几种:
访问请求的path、访问请求的query string、访问请求的header,访问请求的body。
可选地,上述方法中,编码后得到多组字段,还包括如下一种或几种字段:
过期时间、冗余字段、类型。
可选地,上述方法中,所述将所得到的多组字段按照预设方式进行组合,生成字符串,包括:
将所得到的多组字段按照预设方式进行组合后,添加扩展标识,生成字符串,所述扩展标识用于指示授权校验的扩展信息。
根据本文的另一方面,提供一种基于访问的授权校验信息的使用方法,包括:
客户端待发起某一操作时,获取按照上述基于访问的授权校验信息的生成方法得到的访问请求,其中,所获取的访问请求中嵌入的字符串指示所述操作对应的授权校验信息;
所述客户端使用所述访问请求发起所述操作。
根据本文的另一方面,提供一种基于访问的授权校验装置,包括:
提取模块,接收访问请求,从所述访问请求中提取用于授权校验的字符串;
解析模块,按照预设方式对所述字符串进行划分,得到多组字段,按照预设方式对得到的多组字段分别进行解析操作,得到各组字段对应的原始数据,其中,对所述字符串进行划分得到的多组字段至少包括:随机字段、创建时间、唯一标识和校验码;
授权校验模块,根据所述原始数据校验所述访问请求的权限和合法性。
可选地,上述装置中,所述提取模块,从所述访问请求中提取用于授权校验的字符串,包括:
从所述访问请求的设定位置中提取所述字符串,所述设定位置包括如下任一种或几种:
访问请求的path、访问请求的query string、访问请求的header,访问请求的body。
可选地,上述装置中,所述解析模块,按照预设方式对所述字符串进行划分,包括:
在所述字符串中查找预设的固定字符,将查找到的每个固定字符做为划分标识,将所述字符串划分为多组字段,其中,划分得到的每组字段中不包含所述固定字符。
可选地,上述装置中,所述解析模块,对所述字符串进行划分得到的多组字段,还包括如下一种或几种字段:
过期时间、冗余字段、类型。
可选地,上述装置中,所述授权校验模块,根据所述原始数据校验所述访问请求的权限和合法性,包括:
将所述原始数据,与已获取的所述访问请求的用户权限信息进行比较,验证所述访问请求的合法性和/或用户的授权权限。
可选地,上述装置中,所述解析模块,对所述字符串进行划分,得到多组字段后,还从所述字符串中获取扩展标识,所述扩展标识用于指示授权校验的扩展信息。
根据本文的另一方面,提供一种基于访问的授权校验信息的生成装置,包括:
数据获取模块,针对客户端待发起的操作,获取所述操作对应的原始数据,所述原始数据用于校验所述操作的权限和合法性;
编码模块,将所获取的原始数据分别按照预设方式进行编码,编码后得到多组字段,其中,所得到的多组字段至少包括:随机字段、创建时间、唯一标识和校验码;
字符串生成模块,将所得到的多组字段按照预设方式进行组合,生成字符串;
字符串反馈模块,将所述字符串嵌入访问请求中反馈给所述客户端,用于指示所述客户端按照所述访问请求发起操作请求。
可选地,上述装置中,所述字符串生成模块,将所得到的多组字段按照预设方式进行组合,生成字符串,包括:
将所得到的多组字段按照设定顺序依次组合,在每组字段之间添加预设的固定字符,最终生成所述字符串。
可选地,上述装置中,所述字符串反馈模块,将所述字符串嵌入访问请求中,包括:
将所述字符串嵌入访问请求的设定位置中,所述设定位置包括如下任一种或几种:
访问请求的path、访问请求的query string、访问请求的header,访问请求的body。
可选地,上述装置中,所述编码模块,编码后得到多组字段,还包括如下一种或几种字段:
过期时间、冗余字段、类型。
可选地,上述装置中,字符串生成模块,将所得到的多组字段按照预设方式进行组合后,添加扩展标识,生成字符串,所述扩展标识用于指示授权校验的扩展信息。
根据本文的另一方面,提供一种服务器,包括:第一装置和第二装置,其中:
所述第一装置为如上所述的基于访问的授权校验装置;
所述第二装置为如上所述的基于访问的授权校验信息的生成装置。
根据本文的另一方面,提供一种客户端设备,包括:
获取模块,在本客户端待发起某一操作时,获取按照上述基于访问的授权校验信息的生成方法得到的访问请求,其中,所获取的访问请求中嵌入的字符串指示所述操作对应的授权校验信息;
请求模块,使用所获取的访问请求发起所述操作。
根据本文的另一方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时实现如上所述的基于访问的授权校验方法的步骤。
根据本文的另一方面,提供一种计算机设备,包括处理器、存储器和存储于所述存储器上的计算机程序,所述处理器执行所述计算机程序时实现如上所述的基于访问的授权校验方法的步骤。
本文将客户端重要信息(即可用于校验用户操作的权限和合法性的数据)通过编码方式生成字符串从而进行客户端鉴权处理,由于字符串是不可读的,也就不存在暴露原始数据的规律,可以有效避免恶意用户暴力尝试和破解行为。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本文。
附图说明
构成本文的一部分的附图用来提供对本文的进一步理解,本文的示意性实施例及其说明用于解释本文,并不构成对本文的不当限定。在附图中:
图1是根据一示例性实施例示出的一种基于访问的授权校验方法流程图。
图2是根据一示例性实施例示出的一种基于访问的授权校验信息的生成方法流程图。
图3是根据一示例性实施例示出的一种基于访问的授权校验装置的结构示意图。
图4是根据一示例性实施例示出的一种基于访问的授权校验信息的生成装置的结构示意图。
具体实施方式
为使本文实施例的目的、技术方案和优点更加清楚,下面将结合本文实施例中的附图,对本文实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本文一部分实施例,而不是全部的实施例。基于本文中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本文保护的范围。需要说明的是,在不冲突的情况下,本文中的实施例及实施例中的特征可以相互任意组合。
图1是根据一示例性实施例示出的一种基于访问的授权校验方法的流程图,包括如下操作:
步骤S11,接收访问请求,从中提取字符串;
本文中,访问请求可以是客户端侧发送的。
可以从访问请求的设定位置中提取所述字符串,此设定位置可以是预先配置好的,即接收方和发送方之间约定好的。例如,可以从访问请求的path、query string、header头或者body内,提取到字符串。
本文中,访问请求中的字符串可以用于验证所属请求的合法性,同时也可以用于验证发送请求的用户身份信息(即可以作为用户的授权标记)。
步骤S12,按照预设方式对上述字符串进行划分,得到多组字段,按照预设方式对得到的多组字段分别进行解析操作;
本文中采用了固定字符划分字段的方式,即从字符串中查找预设的固定字符,将查找到的每个固定字符做为划分标识,可以将字符串划分为多组字段。其中,固定字符仅用于区分出不同的字段,因此划分得到的每组字段中不包含固定字符。
在字符串中,解析各字段时,可以按照预设的字段位置分别确定各字段的解析方式之后,进行解析即可。
步骤S13,若按照上述步骤S12解析,结果是解析成功,则得到各组字段对应的原始数据,执行步骤S14,若解析操作的结果是解析失败时,即可认为是非正常行为,可以向客户端发送访问请求失败或非法的响应,结束本流程;
其中,解析失败的情况可以包括如下各种情况:
1、字符串不存在;2、字符串用固定字符串拆分后,字段校验不正确。3、任何字段使用对应解码方式时均失败。4、校验码不一致。
步骤S14,根据解析获得的原始数据校验收到的访问请求的权限和合法性;
该步骤中,可以将获得的原始数据,与已获取的所述访问请求的用户权限信息(例如通过cookie信息获取的用户权限和范围)进行比较,验证访问请求的合法性和/或用户的授权权限。
本示例中,访问请求中携带的字符串可用于校验访问请求的权限和合法性,因此,由字符串划分得到的多组字段至少包括随机字段、创建时间、唯一标识和校验码。其中,随机字段对应的原始数据可以是一个随机整数。创建时间对应的原始数据可以是设备或服务或系统生成此字符串的毫秒时间戳。唯一标识对应的原始数据可以是此字符串某维度内的唯一标示,例如代表用户维度的唯一标识可以是用户实际ID。校验码是对字符串中的除本校验码字段以外的其他所有字段组合后的哈希值,以校验其他各字段的真伪。除了上述各字段以外,针对不同的应用场景下的需求,以及扩展需求,可以在上述四种字段的基础上,额外添加如下一种或几种字段:
过期时间、冗余字段、类型。
其中,过期时间对应的原始数据可以是含有此字符串请求的过期时间,该字段尤其适用于软件使用授权、图片防盗链有效期。冗余字段对应的原始数据可以是访问请求隶属的模块、产品线或其他标识。类型对应的原始数据可以是含有此字符串请求的类型,比如测试、线上等。
当字符串中包含有除了随机字段、创建时间、唯一标识和校验码之外的其他字段时,可以按照访问请求中所涉及的不同的业务操作确定当前字符串中各字段的解析方式,进行解析即可。
另外,按照上述方法从字符串中得到多个字段后,还可以从字符串中获取扩展标识,此扩展标识可以占用1个或多个比特位,用于指示授权校验的扩展信息。例如,可以从字符串的开头或结尾处获取到此扩展标识,用于指示客户端用户的权限等。也可以将该扩展标识做为保留位,在后续扩展的业务操作中可用于指示具体的授权校验的相关信息。
图2是根据一示例性实施例示出的一种基于访问的授权校验信息的生成方法的流程图,包括如下操作:
步骤S21,针对客户端待发起的操作,获取此操作对应的原始数据;
该步骤中,所获取的原始数据可以用于校验操作的权限和合法性;
步骤S22,将所获取的原始数据分别按照预设方式进行编码,编码后得到多组字段;
其中,各组字段是由原始数据编码得到的,而原始数据可用于校验操作的权限和合法性,因此所需要的字段至少包括:随机字段、创建时间、唯一标识和校验码这四个字段。其中,随机字段标识出一个随机整数,可用于字符串校验码的生成。创建时间可以指示出设备或服务或系统生成此字符串的毫秒时间戳。唯一标识可以指示出此字符串在某维度内的唯一标示。校验码可以是校验各字段(即前面所描述的随机字段、创建时间和唯一标识)是否正确。
除了上述各字段以外,针对不同的应用场景下的需求,可以在上述四个字段的基础上,添加过期时间、冗余字段、类型这三个字段中的一种个或几种。例如,针对具有时效性的场景(软件使用授权时限或图片防盗链有效期),可以增加过期时间,即字符串请求的过期时间。针对需要标识出访问请求隶属的模块、产品线或其他标识的场景,可以通过增加冗余字段来指示。针对需要表示出请求的类型(比如测试、线上等),则可以增加称为类型的字段。在复杂场景需要标识出更多信息时,也可以根据需求增加多个字段。
步骤S23,将所得到的多组字段按照预设方式进行组合,生成字符串;
本示例中,可以将所得到的多组字段按照设定顺序依次组合,在每组字段之间添加预设的固定字符用于标识出不同的字段之间的划分位置(即将固定字符做为划分标识插入不同的字段之间),最终生成用于授权校验的字符串(该字符串相当于授权校验信息)。其中,针对访问请求中所涉及的不同的业务操作,字符串携带的字段数目可能会大于四个字段(即字符串中除了随机字段、创建时间、唯一标识和校验码之外还可能包括其他字段),此时可以按照不同的设定顺序将多个字段依次进行组合,生成字符串。
另外,在字符串的生成过程中,还可以在字符串中添加扩展标识,此扩展标识可以占用1个或多个比特位,用于指示授权校验的扩展信息。例如,可以在字符串的开头或结尾处添加一个扩展标识,用于指示客户端用户的权限等。也可以将该扩展标识做为保留位,在后续扩展的业务操作中可用于指示具体的授权校验的相关信息。
步骤S24,将生成的字符串嵌入访问请求中反馈给客户端,以便客户端可以使用此访问请求发起操作请求。
本示例中字符串无论作为请求合法性检验还是作为系统或软件授权方式使用,都可以把对应字符串放置在访问请求的设定位置。例如,放置在请求的path、query string、header头或者body体内。
而对于客户端而言,按照上这步骤S24的操作,将生成的字符串嵌入访问请求中反馈给客户端之后,是直接嵌入网页使用,还是先存储在缓存或内存位置,都可以由客户端自己根据业务来确定。
上述两个示例中给出的基于访问的授权校验信息的生成方法和基于访问的授权校验方法,可以结合使用,以实现对客户端操作的鉴权处理。即先按照基于访问的授权校验信息的生成方法,将客户端信息,即可用于校验用户操作的权限和合法性的数据,生成字符串发起基于访问的操作请求。之后再按照基于访问的授权校验方法,对包含有字符串的访问请求进行鉴权操作。详细的步骤执行过程可参考上述示例的内容,在此不做赘述。
下面先介绍一种应用场景下,实际生成字符串时,需要预先设置可生成字符串的各种字段的定义,如表1所示。
表1为字段定义内容表
Figure BDA0002110520240000111
Figure BDA0002110520240000121
表1中,“随机字段”,是必须字段,可用于生成足够混淆的唯一字符串,这样可以有效防止暴力尝试,因此此字段建议使用较大数字随机生成,比如随机100000000~999999999范围的数字进行转换进制表示。
“过期时间”,是非必须字段,但对于一些场景比较有用,如防盗链的图片链接。如果拥有含有过期时间的字符串作为请求参数,则可以保证一个请求合法性是可以根据实际需要指定,以防外部使用者通过链接盗用资源。
“冗余字段”和“类型”,是非必要字段,可以根据生成字符串的用途、类型、生成字符串所属系统或机器标识等维度进行区分。即通过“冗余字段”和“类型”可以简单便捷的判定出请求所属产品线、部门、用途目的以及生成此字符串的系统等。
“创建时间”,是必须字段,可以是生成字符串标识的时间,由于字符串是直接暴露外部的,恶意用户可以轻易拿到,因此字段内含有创建时间可以有效防止恶意用户长时间根据此字段进行大量暴力尝试。
“唯一标识”,是必须字段,是代表字符串的最重要的内容字段。例如,请求是针对用户的,那么此字段可以标识出用户的唯一标识ID。例如,请求是针对博客文章的,那么此字段可以标识出博客文章的唯一标示blog_id。例如,请求是针对授权客户的名称,则此字段可以先进行base64编码,然后再使用,对于中文可以base64编码后进行一定规则改造,比如把“代表”base64编码生成后的后缀“=”或“==”进行有规则性的二次替换处理,这样从字符串本身就可以有效避免恶意用户的猜测。
校验码”,是必须字段,此字段是由前几个需要的字段作为编码字符串然后通过内部约定的哈希算法计算得到的,即校验码可以,是在各字段编码后对各字段组合计算得到的哈希值。采用优秀的哈希算法如sha256、md5等,可有有效生成唯一校验码,根据实际需要截取校验码部分内容即可用于后续校验此字符串整体是否正确的依据。
其中,表1中有关数值型的字段需要进制转换,在本示例中采用的是36进制(36进制是0-9,a-z)。根据需求,也可以使用62进制表示(62进制是0-9,a-z,A-Z)。当然也可以根据实际情况增加一定的偏移量比如在原始数值上加上或减去一定值,或者添加一些变化字符等等,本文对此不做特别限制。
按照上述表1定义的字段含义,即可以根据实际需求,生成相应的字符串,嵌入访问请求即可。
例如,生成的字符串可以放在请求的URL的PATH部分,表示如下:
/api/user/dlnofr-j9f6s148-5rWL6K+V31056477-b82d99fd4909b75/info;
又如,可以将生成的字符串置于访问请求的query部分,表示如下:/api/user/info?token=dlnofr-j9f6s148-5rWL6K+V31056477-b82d99fd4909b75;
还可以将生成的字符串放在访问请求的request header头中,表示如下:
Authorization:token dlnofr-j9f6s148-5rWL6K+V31056477-b82d99fd4909b75。
具体地,字符串嵌入访问请求的方式有多种,每种方式可以根据实际业务需要而定,本文对此不做特别限制。
另外,本示例给出的方案生成的字符串进行请求合法性校验时,只需要解析字符串,获取字符串的原始数据信息。如果解析过程失败,比如字符串是恶意用户伪造或字符串过期等,直接表明此次请求操作非法;如果解析成功,则只需要根据cookie信息获取的用户权限和范围直接和解析后的数据进行比较即可,这样可以避免向数据库或底层再获取此操作的部分信息的动作,避免了服务器层的IO操作和部分CPU操作。
例如:操作删除指定博客的操作,相关技术一般是通过调用“delete/api/blog_id/123”,这个过程服务器端接到请求后,首先判定执行此删除操作的是谁,假设根据cookie获取到了执行此删除操作的是用户uid为10的一位具有删除此文章权限的用户,那么再根据blog_id向数据库获取此博客可以删除的用户uid列表,最后判定uid是10的用户是否可以删除此文章,此过程需要请求数据库后然后在进行比较。而采用了上述方法生成了如下访问请求:
“delete/api/blog_id/dlnofr-j9f6s148-5rWL6K+V31056477-b82d99fd4909b75”。
在页面第一次访问此篇博客文章生成此字符串时,即可以把当前操作用户对此博客是否具有操作权限一并作为原始数据嵌入到所生成的字符串中,例如,在字符串中增加扩展标记,此扩展标记可用于指示用户的操作权限,这样只需要解密字符串即可得到此用户是否具有删除此博客的权限,无需再去请求数据库获取信息。
本示例性实施例,提供一种基于访问的授权校验信息的使用方法,包括如下操作:
步骤a、客户端待发起某一操作时,获取按照上述基于访问的授权校验信息的生成方法中得到的访问请求;
其中,客户端所获取的访问请求中嵌入的字符串指示待发起操作对应的授权校验信息;
步骤b、客户端使用上述访问请求发起操作。
关于上述实施例中的客户端所获取的访问请求的生成方法步骤的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图3是根据一示例性实施例示出的一种基于访问的授权校验装置的结构框图,该装置可以内置于服务器中,也可以置于客户端侧,还可以是脱离于服务器和客户端侧的一个单独的装置,其包括提取模块、解析模块和授权校验模块。
提取模块,被配置为执行,接收访问请求,从访问请求中提取字符串;
其中,提取模块,提取字符串时,可以从访问请求的path、query string、header或者body中进行提取。
解析模块,被配置为执行,按照预设方式对所述字符串进行划分,得到多组字段,按照预设方式对得到的多组字段分别进行解析操作,得到各组字段对应的原始数据。
以最基本的情况为例,解析模块由字符串划分得到的多组字段中,至少包括:随机字段、创建时间、唯一标识和校验码这四个必需字段。在最基本情况的基础上,根据不同的应用场景的需求,字符串中指示的原始数据还可能包括其他参数,此时,由字符串划分得到的多组字段,还可以包括过期时间、冗余字段和类型中的任一种或几种。
上述解析模块划分字符串时所采用的预设方式可以是预先获知,或预先配置好的。例如,预先配置以固定字符做为不同字段之间的间隔,则可以在字符串中查找预设的固定字符,将查找到的每个固定字符做为划分线,将字符串划分为多组字段。其中,固定字符仅用于划分字段,不具备实际含义,因此,划分得到的每组字段中不包含固定字符。
授权校验模块,被配置为执行,根据原始数据校验所述访问请求的权限和合法性。
本示例中,授权校验模块,可以将解析得到的原始数据,与已获取的所述访问请求的用户权限信息进行比较,验证所述访问请求的合法性和/或用户的授权权限。
另外,上述解析模块,按照预设方式对得到的多组字段分别进行解析操作之后,也可能会发生解析失败的情况,此时,解析模块可以向客户端发送访问请求失败或非法的响应。
其中,解析失败的情况可以包括如下各种情况:
1、字符串不存在;2、字符串用固定字符串拆分后,字段校验不正确。3、任何字段使用对应解码方式时均失败。4、校验码不一致。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图4是根据一示例性实施例示出的一种基于访问的授权校验信息的生成装置的结构框图,该装置可以内置于服务器中,也可以置于客户端侧,还可以是脱离于服务器和客户端侧的一个单独的装置,其包括数据获取模块、编码模块、字符串生成模块和字符串反馈模块。
数据获取模块,针对客户端待发起的操作,获取待发起的操作对应的原始数据,本示例中的原始数据可用于校验所述操作的权限和合法性;
编码模块,将所获取的原始数据分别按照预设方式进行编码,编码后得到多组字段。
其中,编码得到的多组字段至少包括如下四个字段(可认为是必需字段):随机字段、创建时间、唯一标识和校验码;
以上述四个字段为基础上,可以结合不同场景的不同需求,增加一种或多种字段,例如过期时间、冗余字段和类型等等。
字符串生成模块,将所得到的多组字段按照预设方式进行组合,生成字符串;
上述字符串生成模块,可以将所得到的多组字段按照设定顺序依次组合,在每组字段之间添加预设的固定字符,最终生成所述字符串。
字符串反馈模块,将字符串嵌入访问请求中反馈给客户端,用于指示所述客户端按照所述访问请求发起操作请求。
上述字符串反馈模块,嵌入字符串的方式有多种多样,采用任意一种均可。例如,可以将字符串嵌入访问请求的设定位置中,设定位置包括如下任一种或几种:
访问请求的path、query string、header,body。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
从上述装置的示例可以看出,生成用于授权校验的字符串的可以是一个服务器或装置,类似一个加密解密服务或短地址服务等。任何适用方均可以通过申请开通服务,例如,可以直接调用正向加密编码接口获取此字符串,还可以调用反向解密接口获取此字符串的原始数据信息。
基于此,本示例提供一种服务器,可以包括上述示例给出的基于访问的授权校验装置,以及上述示例给出的基于访问的授权校验信息的生成装置。
关于上述实施例中的服务器内各装置的个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本示例提供一种客户端设备,可以包括获取模块和请求模块。
其中,获取模块,被配置执行,在本客户端待发起某一操作时,获取按照上述基于访问的授权校验信息的生成方法中得到的访问请求,其中,所获取的访问请求中嵌入的字符串指示所述操作对应的授权校验信息;
请求模块,使用所获取的访问请求发起操作。
关于上述实施例中的服务器内各装置的个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
从上述方法的示例可以看出,本文技术方案生成字符串的可以是一个系统或方法的形式,包括生成正向根据实际使用传递的数据生成编码后的不可读字符串以及由不可读字符串反向解出原生成此字符串传递的原始数据,同时保证对于非法伪造的字符串在反解的时候直接返回无效或非法。
基于此,本示例提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被执行时实现如上述示例给出的基于访问的授权校验方法的步骤;或者计算机程序被执行时实现如上述示例给出的基于访问的授权校验信息的生成方法的步骤。
关于上述实施例中的计算机可读存储介质中,计算机程序执行的方法步骤的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本示例提供一种计算机设备,包括处理器、存储器和存储于所述存储器上的计算机程序,处理器执行计算机程序时实现如上述示例给出的基于访问的授权校验方法的步骤;或者处理器执行计算机程序时实现如上述示例给出的基于访问的授权校验信息的生成方法的步骤。
关于上述实施例中的计算机设备中,处理器执行的方法步骤的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
从上述实施例可以看出,本文公开的技术方案对客户端的鉴权过程简便,且网络安全性更可靠,尤其适用于软件使用授权、图片防盗链有效期、访问操作权限校验等场景。具体来说,具备如下几点有益效果:
相比于相关技术中的各种鉴权方式,文公开的技术方案采用的字符串方式,从字符串本身推理不出任何逻辑,因此,避免了恶意用户通过逆向解密而模拟伪造加密信息,以及恶意用户暴力尝试的问题。
本文公开的技术方案生成的字符串不需要前端或者调用方做任何上层校验,只需要作为普通数据处理即可,这样避免暴露字符串的加密解密编码的逻辑方式,从而避免前端或上层计算校验和可能存在的恶意破解。
本文公开的技术方案采用的字符串本身没有直接披露有关请求的任何信息,也就是说,在接口路径和请求上不会直接暴露对应的原始自增的编号,进而避免了恶意用户通过猜测或遍历探查漏洞的问题。
本文公开的技术方案采用的字符串,其加解密操作比较简单,故其使用CPU的资源很少并且不使用IO,从而大量节约了服务器端的资源使用。
本领域技术人员应明白,本文的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本文可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本文可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质,包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质等。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
本文是参照根据本文实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。
尽管已描述了本文的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本文范围的所有变更和修改。
显然,本领域的技术人员可以对本文进行各种改动和变型而不脱离本文的精神和范围。这样,倘若本文的这些修改和变型属于本文权利要求及其等同技术的范围之内,则本文的意图也包含这些改动和变型在内。

Claims (21)

1.一种基于访问的授权校验方法,其特征在于,所述方法包括:
接收访问请求,从所述访问请求中提取用于授权校验的字符串;
按照预设方式对所述字符串进行划分,得到多组字段,按照预设方式对得到的多组字段分别进行解析操作,得到各组字段对应的原始数据;
根据所述原始数据校验所述访问请求的权限和合法性;
其中,对所述字符串进行划分得到的多组字段至少包括:随机字段、创建时间、唯一标识和校验码。
2.根据权利要求1所述的方法,其特征在于,所述按照预设方式对所述字符串进行划分,包括:
在所述字符串中查找预设的固定字符,将查找到的每个固定字符做为划分标识,将所述字符串划分为多组字段,其中,划分得到的每组字段中不包含所述固定字符。
3.根据权利要求1所述的方法,其特征在于,从所述访问请求中提取字符串,包括:
从所述访问请求的设定位置中提取所述字符串,所述设定位置包括如下任一种或几种:
访问请求的path、访问请求的query string、访问请求的header,访问请求的body。
4.根据权利要求1所述的方法,其特征在于,对所述字符串进行划分得到的多组字段,还包括如下一种或几种字段:
过期时间、冗余字段、类型。
5.一种基于访问的授权校验信息的生成方法,其特征在于,所述方法包括:
针对客户端待发起的操作,获取所述操作对应的原始数据,所述原始数据用于校验所述操作的权限和合法性;
将所获取的原始数据分别按照预设方式进行编码,编码后得到多组字段,其中,所得到的多组字段至少包括:随机字段、创建时间、唯一标识和校验码;
将所得到的多组字段按照预设方式进行组合,生成字符串;
将所述字符串嵌入访问请求中反馈给所述客户端,用于指示所述客户端按照所述访问请求发起操作请求。
6.根据权利要求5所述的方法,其特征在于,所述将所得到的多组字段按照预设方式进行组合,生成字符串,包括:
将所得到的多组字段按照设定顺序依次组合,在每组字段之间添加预设的固定字符,最终生成所述字符串。
7.根据权利要求5所述的方法,其特征在于,将所述字符串嵌入访问请求中,包括:
将所述字符串嵌入访问请求的设定位置中,所述设定位置包括如下任一种或几种:
访问请求的path、访问请求的query string、访问请求的header,访问请求的body。
8.根据权利要求5至7任一项所述的方法,其特征在于,编码后得到多组字段,还包括如下一种或几种字段:
过期时间、冗余字段、类型。
9.一种基于访问的授权校验信息的使用方法,其特征在于,
客户端待发起某一操作时,获取按照权利要求5至8任一项所述的方法得到的访问请求,其中,所获取的访问请求中嵌入的字符串指示所述操作对应的授权校验信息;
所述客户端使用所述访问请求发起所述操作。
10.一种基于访问的授权校验装置,其特征在于,包括:
提取模块,接收访问请求,从所述访问请求中提取用于授权校验的字符串;
解析模块,按照预设方式对所述字符串进行划分,得到多组字段,按照预设方式对得到的多组字段分别进行解析操作,得到各组字段对应的原始数据,其中,对所述字符串进行划分得到的多组字段至少包括:随机字段、创建时间、唯一标识和校验码;
授权校验模块,根据所述原始数据校验所述访问请求的权限和合法性。
11.根据权利要求10所述的装置,其特征在于,所述提取模块,从所述访问请求中提取用于授权校验的字符串,包括:
从所述访问请求的设定位置中提取所述字符串,所述设定位置包括如下任一种或几种:
访问请求的path、访问请求的query string、访问请求的header,访问请求的body。
12.根据权利要求10所述的装置,其特征在于,所述解析模块,按照预设方式对所述字符串进行划分,包括:
在所述字符串中查找预设的固定字符,将查找到的每个固定字符做为划分标识,将所述字符串划分为多组字段,其中,划分得到的每组字段中不包含所述固定字符。
13.根据权利要求10至12任一项所述的装置,其特征在于,所述解析模块,对所述字符串进行划分得到的多组字段,还包括如下一种或几种字段:
过期时间、冗余字段、类型。
14.一种基于访问的授权校验信息的生成装置,其特征在于,
数据获取模块,针对客户端待发起的操作,获取所述操作对应的原始数据,所述原始数据用于校验所述操作的权限和合法性;
编码模块,将所获取的原始数据分别按照预设方式进行编码,编码后得到多组字段,其中,所得到的多组字段至少包括:随机字段、创建时间、唯一标识和校验码;
字符串生成模块,将所得到的多组字段按照预设方式进行组合,生成字符串;
字符串反馈模块,将所述字符串嵌入访问请求中反馈给所述客户端,用于指示所述客户端按照所述访问请求发起操作请求。
15.根据权利要求14所述的装置,其特征在于,所述字符串生成模块,将所得到的多组字段按照预设方式进行组合,生成字符串,包括:
将所得到的多组字段按照设定顺序依次组合,在每组字段之间添加预设的固定字符,最终生成所述字符串。
16.根据权利要求14所述的装置,其特征在于,所述字符串反馈模块,将所述字符串嵌入访问请求中,包括:
将所述字符串嵌入访问请求的设定位置中,所述设定位置包括如下任一种或几种:
访问请求的path、访问请求的query string、访问请求的header,访问请求的body。
17.根据权利要求14至16任一项所述的装置,其特征在于,所述编码模块,编码后得到多组字段,还包括如下一种或几种字段:
过期时间、冗余字段、类型。
18.一种服务器,其特征在于,包括:第一装置和第二装置,其中:
所述第一装置为如权利要求10至13中任一项所述的基于访问的授权校验装置;
所述第二装置为如权利要求14至17中任一项所述的基于访问的授权校验信息的生成装置。
19.一种客户端设备,其特征在于,包括:
获取模块,在本客户端待发起某一操作时,获取按照权利要求5至8任一项所述的方法得到的访问请求,其中,所获取的访问请求中嵌入的字符串指示所述操作对应的授权校验信息;
请求模块,使用所获取的访问请求发起所述操作。
20.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被执行时实现如权利要求1-4中任意一项所述方法的步骤;或者所述计算机程序被执行时实现如权利要求5-8中任意一项所述方法的步骤。
21.一种计算机设备,包括处理器、存储器和存储于所述存储器上的计算机程序,其特征在于,
所述处理器执行所述计算机程序时实现如权利要求1-4中任意一项所述方法的步骤;或者
所述处理器执行所述计算机程序时实现如权利要求5-8中任意一项所述方法的步骤。
CN201910569317.XA 2019-06-27 2019-06-27 基于访问的授权校验方法、信息的生成方法及装置、服务器 Pending CN112149068A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910569317.XA CN112149068A (zh) 2019-06-27 2019-06-27 基于访问的授权校验方法、信息的生成方法及装置、服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910569317.XA CN112149068A (zh) 2019-06-27 2019-06-27 基于访问的授权校验方法、信息的生成方法及装置、服务器

Publications (1)

Publication Number Publication Date
CN112149068A true CN112149068A (zh) 2020-12-29

Family

ID=73868837

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910569317.XA Pending CN112149068A (zh) 2019-06-27 2019-06-27 基于访问的授权校验方法、信息的生成方法及装置、服务器

Country Status (1)

Country Link
CN (1) CN112149068A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114978733A (zh) * 2022-05-30 2022-08-30 阿里巴巴(中国)有限公司 基于轻应用的访问处理方法、电子设备和存储介质
CN115021998A (zh) * 2022-05-27 2022-09-06 福建天晴数码有限公司 一种静态资源双重防盗链的方法及系统
CN116882867A (zh) * 2023-07-19 2023-10-13 壹站(上海)供应链管理有限公司 一种物流数据处理与分析方法及装置
CN116882867B (zh) * 2023-07-19 2024-06-07 壹站(上海)供应链管理有限公司 一种物流数据处理与分析方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060294578A1 (en) * 2005-06-23 2006-12-28 Microsoft Corporation Unified authorization for heterogeneous applications
CN105099692A (zh) * 2014-05-22 2015-11-25 阿里巴巴集团控股有限公司 安全校验方法、装置、服务器及终端
CN107800819A (zh) * 2017-11-17 2018-03-13 深圳市泉眼网络科技有限公司 一种文件标识的生成方法、装置和服务器
CN108900471A (zh) * 2018-05-31 2018-11-27 北京证大向上金融信息服务有限公司 用于传输数据的服务器、客户端、网络系统及方法
CN109753787A (zh) * 2019-01-21 2019-05-14 山西晟视汇智科技有限公司 一种具有唯一性的设备登录密码生成及管理方法、装置、系统、存储设备和终端

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060294578A1 (en) * 2005-06-23 2006-12-28 Microsoft Corporation Unified authorization for heterogeneous applications
CN105099692A (zh) * 2014-05-22 2015-11-25 阿里巴巴集团控股有限公司 安全校验方法、装置、服务器及终端
CN107800819A (zh) * 2017-11-17 2018-03-13 深圳市泉眼网络科技有限公司 一种文件标识的生成方法、装置和服务器
CN108900471A (zh) * 2018-05-31 2018-11-27 北京证大向上金融信息服务有限公司 用于传输数据的服务器、客户端、网络系统及方法
CN109753787A (zh) * 2019-01-21 2019-05-14 山西晟视汇智科技有限公司 一种具有唯一性的设备登录密码生成及管理方法、装置、系统、存储设备和终端

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115021998A (zh) * 2022-05-27 2022-09-06 福建天晴数码有限公司 一种静态资源双重防盗链的方法及系统
CN115021998B (zh) * 2022-05-27 2023-08-11 福建天晴数码有限公司 一种静态资源双重防盗链的方法及系统
CN114978733A (zh) * 2022-05-30 2022-08-30 阿里巴巴(中国)有限公司 基于轻应用的访问处理方法、电子设备和存储介质
CN114978733B (zh) * 2022-05-30 2024-05-14 阿里巴巴(中国)有限公司 基于轻应用的访问处理方法、电子设备和存储介质
CN116882867A (zh) * 2023-07-19 2023-10-13 壹站(上海)供应链管理有限公司 一种物流数据处理与分析方法及装置
CN116882867B (zh) * 2023-07-19 2024-06-07 壹站(上海)供应链管理有限公司 一种物流数据处理与分析方法及装置

Similar Documents

Publication Publication Date Title
CN110691087A (zh) 一种访问控制方法、装置、服务器及存储介质
WO2019134233A1 (zh) 网络令牌生成的方法、装置、终端设备及存储介质
US9419803B2 (en) Flexible data authentication
US11979505B2 (en) File acquisition method and device based on two-dimensional code and two-dimensional code generating method
CN108347428B (zh) 基于区块链的应用程序的注册系统、方法和装置
CN107426235B (zh) 基于设备指纹的权限认证方法、装置及系统
CN106911684B (zh) 一种鉴权方法及系统
CN111355726B (zh) 一种身份授权登录方法、装置及电子设备和存储介质
US10348701B2 (en) Protecting clients from open redirect security vulnerabilities in web applications
KR102137122B1 (ko) 보안 체크 방법, 장치, 단말기 및 서버
CN111818088A (zh) 授权模式管理方法、装置、计算机设备及可读存储介质
CN109495486B (zh) 一种基于JWT的单页Web应用集成CAS的方法
CN110071937B (zh) 基于区块链的登录方法、系统及存储介质
CN112149068A (zh) 基于访问的授权校验方法、信息的生成方法及装置、服务器
CN115842680A (zh) 一种网络身份认证管理方法及系统
US7739500B2 (en) Method and system for consistent recognition of ongoing digital relationships
CN107493250B (zh) 一种对网页请求进行鉴权的方法、客户端及服务器
CN116680673B (zh) 显示器的身份校验方法、装置以及计算机设备
CN108965335B (zh) 防止恶意访问登录接口的方法、电子设备及计算机介质
CN108600266B (zh) 一种声明过滤认证方法及认证系统
CN115567271A (zh) 鉴权方法和装置、页面跳转方法和装置、电子设备及介质
CN115085999A (zh) 身份验证方法、系统、计算机设备和存储介质
CN114637985A (zh) 一种基于多环境参数的Android应用登录伪造识别方法
CN114531246A (zh) 数据下载方法及装置
CN114401117A (zh) 基于区块链的账户登录验证系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination