本发明涉及计算机技术领域,更具体地说,涉及到一种文件服务器访问分级方法。
背景技术:
随着互联网的发展,微服务架构的盛行,以及对用户体验的要求的不断提高,不少公司的文件、图片等静态资源管理逐渐趋向于集中化管理。通过建立文件服务系统进行图片的集中化管理,但文件集中化管理也会产生如下问题,如何保证文件访问的安全性。
本
技术实现要素:
为了克服现有技术的不足,本发明提供一种文件服务器访问分级方法用来如何解决文件访问安全性低的技术问题。
本发明解决其技术问题所采用的技术方案是:提供一种文件服务器访问分级方法,包括以下步骤:
s1:应用app将文件的访问权限分等级,利用权限等级和文件的唯一标识fi形成文件访问权限表;
s2:当客户端请求文件服务器时,判断客户端的ip是否在ip白名单或者黑名单内;
s3:等级3、等级1将使用验签的方式判断是否具有文件的访问权限;
s4:构造请求参数集合{md5es,t,fi,appid},对文件服务器进行访问请求;
s5:文件服务器获取到请求参数集合{md5es,t,fi,appid},通过fi在文件访问权限表获取appid、salt和secretkey的值;
s6:md5加密结果第一目标md5es和第二目标md5fes进行比较;
s7:应用app通过0级系统授权接口获取一个临时的token,缓存k-v对;
s8:构造请求参数集合{fi,token},文件服务器接收请求参数集合{fi,token},对缓存的k-v进行对比;
s9:0等级系统授权接口。
具体地,通过判断客户端的ip是否在ip白名单或者黑名单内,所述步骤包括:
当客户端的ip在黑名单内,则拒绝访问,返回“文件不存在”;
当客户端的ip不在黑名单,同时也不在白名单内时,返回“文件不存在”。
具体地,等级3、等级1将使用验签的方式判断是否具有文件的访问权限,所述步骤包括:
文件服务器定时随机生成盐值s,应用app定时从文件服务器获取最新的盐值s;
当应用app进行文件访问时,计算待加密字符串es=appid k s t fi,其中k是秘钥secretkey,s是盐值salt,t是当前时间戳,fi是需要访问的文件id。
优选地,计算待加密字符串es=appid k s t fi之后,所述步骤还包括:
待加密字符串进行md5加密得到字符串第一目标md5es=md5(es)。
具体地,文件服务器获取到请求参数集合{md5es,t,fi,appid},通过fi在文件访问权限表获取appid、salt和secretkey的值,所述步骤包括:
待加密字符串fes=appid secretkey salt t fi,其中secretkey、salt均从文件访问权限表获取,t是时间戳,由应用app送达。
优选地,得到待加密字符串fes=appid secretkey salt t fi之后,所述步骤还包括:
对待加密字符串进行md5加密,得到字符串第二目标md5fes=md5(fes)。
具体地,md5加密结果第一目标md5es和第二目标md5fes进行比较,所述步骤包括:
当md5加密结果第一目标md5es和第二目标md5fes相等时,则返回文件;
当md5加密结果第一目标md5es和第二目标md5fes不相等时,则提示文件不存在。
具体地,文件服务器接收请求参数集合{fi,token},对缓存的k-v进行对比,所述步骤包括:
当token值相同则返回文件;
当token值不相同则提示“文件不存在”。
具体地,0等级系统授权接口,所述步骤包括:
0级系统授权接口每天随机生成新的ras公钥和私钥对pubk和prik;
应用app通过时间戳t生成一个aes算法生成一个aeskey;
待加密字符串as=appid password t,然后使用第一步aes算法生成key进行加密的到r;
使用rsa算法的公钥对1生成的aeskey进行加密得到rkey=rsa(aeskey,pubk)。
优选地,使用rsa算法的公钥对1生成的aeskey进行加密得到rkey=rsa(aeskey,pubk)之后,所述步骤还包括:
构造请求参数集合{appid,rkey,r,t},请求授权接口;
授权接口接收appid后到通过授权信息表获取到pub-key和npassword,对rkey使用pub-key进行解密得到aeskey;
利用aeskey对r进行aes解密,获取到原字符串as;
后台拼接nas=appid npassword t,与as进行比较;
如果相同则授权,不同则不授权。
本发明的有益效果是:应用app将文件的访问权限分等级,利用权限等级和文件的唯一标识fi形成文件访问权限表,当客户端请求文件服务器时,判断客户端的ip是否在ip白名单或者黑名单内,等级3、等级1将使用验签的方式判断是否具有文件的访问权限,构造请求参数集合{md5es,t,fi,appid},对文件服务器进行访问请求,文件服务器获取到请求参数集合{md5es,t,fi,appid},通过fi在文件访问权限表获取appid、salt和secretkey的值,md5加密结果第一目标md5es和第二目标md5fes进行比较,应用app通过0级系统授权接口获取一个临时的token,缓存k-v对,构造请求参数集合{fi,token},文件服务器接收请求参数集合{fi,token},对缓存的k-v进行对比,0等级系统授权接口,从而提高了文件访问的安全性。
附图说明
图1是一种文件服务器访问分级方法的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下结合具体实施例对本发明的具体实现进行详细描述:
实施例一:
图1示出了本发明实施例一提供的一种文件服务器访问分级方法的实现流程,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:
在步骤s101中,应用app将文件的访问权限分等级,利用权限等级和文件的唯一标识fi形成文件访问权限表;
在步骤s102中,等级0、1、2都有ip黑白名单的控制,当客户端请求文件服务器时,通过判断客户端的ip是否在ip白名单或者黑名单内;
当客户端的ip在黑名单内,则拒绝访问,返回“文件不存在”;
当客户端的ip不在黑名单,同时也不在白名单内时,返回“文件不存在”。
在步骤s103中,等级3、等级1将使用验签的方式判断是否具有文件的访问权限;
具体地,文件服务器每天随机生成盐值s,应用app每天从文件服务器获取最新的盐值s;
当应用app进行文件访问时,计算待加密字符串es=appid k s t fi;
其中k是秘钥secretkey,s是盐值salt,t是当前时间戳,fi是需要访问的文件id。
待加密字符串进行md5加密得到字符串第一目标md5es=md5(es)。
在步骤s104中,构造请求参数集合{md5es,t,fi,appid},对文件服务器进行访问请求;
在步骤s105中,文件服务器获取到请求参数集合{md5es,t,fi,appid},通过fi在文件访问权限表获取appid、salt和secretkey的值;
待加密字符串fes=appid secretkey salt t fi,其中secretkey、salt均从文件访问权限表获取,t是时间戳,由应用app送达。
对待加密字符串进行md5加密,得到字符串第二目标md5fes=md5(fes)。
在步骤s106中,md5加密结果第一目标md5es和第二目标md5fes进行比较;
具体地,当md5加密结果第一目标md5es和第二目标md5fes相等时,则返回文件;
当md5加密结果第一目标md5es和第二目标md5fes不相等时,则提示文件不存在;
在步骤s107中,应用app通过0级系统授权接口获取一个临时的token,缓存k-v对,
在步骤s108中,构造请求参数集合{fi,token},文件服务器接收请求参数集合{fi,token},对缓存的k-v进行对比;
当token值相同则返回文件;
当token值不相同则提示文件不存在。
在步骤s109中,0级系统授权接口
具体地,0级系统授权接口每天随机生成新的ras公钥和私钥对pubk和prik
应用app通过时间戳t生成一个aes算法生成一个aeskey
待加密字符串as=appid password t,然后使用第一步aes算法生成key进行加密的到r
使用rsa算法的公钥对1生成的aeskey进行加密得到rkey=rsa(aeskey,pubk)
构造请求参数集合{appid,rkey,r,t},请求授权接口。
授权接口接收appid后到通过授权信息表获取到pub-key和npassword,对rkey使用pub-key进行解密得到aeskey,然后拿aeskey对r进行aes解密,获取到原字符串as。后台拼接nas=appid npassword t,与as进行比较,如果相同则授权,不同则不授权。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如rom/ram、磁盘、光盘等。
实施例二:
本发明实施例二提供的一种文件服务器访问分级方法的另一个具体流程,为了便于说明,详述如下:
s1、应用app将文件的访问权限分等级,利用权限等级和文件的唯一标识fi形成文件访问权限表;
表结构如下:
应用app如果需要进行0级文件访问,则需要访问0级授权接口,每个应用app都有相对于的授权信息表;
表结构如下
s2、等级0、1、2都有ip黑白名单的控制,当客户端请求文件服务器的时候,通过判断客户端的ip是否在ip白名单或者黑名单内。如果是在黑名单内,则拒绝访问,返回”文件不存在”。如果不在黑名单内,但同时又不在白名单内,也返回“文件不存在”。只有不在黑名单,且在白名单内的ip,才能进行文件访问。
s3、等级3、等级1将使用验签的方式判断是否具有文件的访问权限。
文件服务器每天随机生成盐值s,应用app每天从文件服务器获取最新的s。
当应用app进行文件访问的时候,计算待加密字符串es=appid k s t fi。
其中k是秘钥secretkey,s是盐值salt,t是当前时间戳,fi是需要访问的文件id。
待加密字符串进行md5加密得到字符串md5es=md5(es)。
s4、构造请求参数集合{md5es,t,fi,appid},对文件服务器进行访问请求。
s5、文件服务器获取到请求参数集合{md5es,t,fi,appid}后,通过fi在文件访问权限表获取appid、salt和secretkey的值,然后按照s3的过程进行计算:
待加密字符串fes=appid secretkey salt t fi,其中secretkey、salt都是从文件访问权限表获取,t是时间戳,由应用app送达。
对待加密字符串进行md5加密,得到字符串md5fes=md5(fes)。
s6、拿s3和s5的md5加密结果md5es和md5fes进行比较,如果相等,则返回文件,如果不相等,则提示文件不存在。
s7、对于0级,采用的是两段访问方式,应用app通过0级系统授权接口获取一个临时的token,生产k-v对保存在缓存中,有效时长为1分钟,然后构造请求参数集合{fi,token},文件服务器接收请求后,拿缓存的k-v对进行对比,如果token相同则返回文件,否则提示文件不存在。
s8、0级系统授权接口的过程:
0级系统授权接口每天随机生成新的ras公钥和私钥对pubk和prik
应用app通过时间戳t生成一个aes算法生成一个aeskey
待加密字符串as=appid password t,然后使用第一步aes算法生成key进行加密的到r
使用rsa算法的公钥对1生成的aeskey进行加密得到rkey=rsa(aeskey,pubk)
构造请求参数集合{appid,rkey,r,t},请求授权接口。
授权接口接收appid后到通过【授权信息表】获取到pub-key和npassword,对rkey使用pub-key进行解密得到aeskey,然后拿aeskey对r进行aes解密,获取到原字符串as。后台拼接nas=appid npassword t,和as进行比较,如果相同则授权,不同则不授权。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各实施例的单元及算法步骤,能够以电子硬件或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。
专业技术人员可以对每个特定的应用来使用不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉技术领域的人员在本发明揭露的技术范围内,可轻易想到变化或者替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
1.一种文件服务器访问分级方法,其特征在于,包括以下步骤:
s1:应用app将文件的访问权限分等级,利用权限等级和文件的唯一标识fi形成文件访问权限表;
s2:当客户端请求文件服务器时,判断客户端的ip是否在ip白名单或者黑名单内;
s3:等级3、等级1将使用验签的方式判断是否具有文件的访问权限;
s4:构造请求参数集合{md5es,t,fi,appid},对文件服务器进行访问请求;
s5:文件服务器获取到请求参数集合{md5es,t,fi,appid},通过fi在文件访问权限表获取appid、salt和secretkey的值;
s6:md5加密结果第一目标md5es和第二目标md5fes进行比较;
s7:应用app通过0级系统授权接口获取一个临时的token,缓存k-v对;
s8:构造请求参数集合{fi,token},文件服务器接收请求参数集合{fi,token},对缓存的k-v进行对比;
s9:0等级系统授权接口。
2.根据权利要求1所述的一种文件服务器访问分级方法,其特征在于,通过判断客户端的ip是否在ip白名单或者黑名单内,所述步骤包括:
当客户端的ip在黑名单内,则拒绝访问,返回“文件不存在”;
当客户端的ip不在黑名单,同时也不在白名单内时,返回“文件不存在”。
3.根据权利要求2所述的一种文件服务器访问分级方法,其特征在于,等级3、等级1将使用验签的方式判断是否具有文件的访问权限,所述步骤包括:
文件服务器定时随机生成盐值s,应用app定时从文件服务器获取最新的盐值s;
当应用app进行文件访问时,计算待加密字符串es=appid k s t fi,其中k是秘钥secretkey,s是盐值salt,t是当前时间戳,fi是需要访问的文件id。
4.根据权利要求3所述的一种文件服务器访问分级方法,其特征在于,计算待加密字符串es=appid k s t fi之后,所述步骤还包括:
待加密字符串进行md5加密得到字符串第一目标md5es=md5(es)。
5.根据权利要求4所述的一种文件服务器访问分级方法,其特征在于,文件服务器获取到请求参数集合{md5es,t,fi,appid},通过fi在文件访问权限表获取appid、salt和secretkey的值,所述步骤包括:
待加密字符串fes=appid secretkey salt t fi,其中secretkey、salt均从文件访问权限表获取,t是时间戳,由应用app送达。
6.根据权利要求5所述的一种文件服务器访问分级方法,其特征在于,得到待加密字符串fes=appid secretkey salt t fi之后,所述步骤还包括:
对待加密字符串进行md5加密,得到字符串第二目标md5fes=md5(fes)。
7.根据权利要求6所述的一种文件服务器访问分级方法,其特征在于,md5加密结果第一目标md5es和第二目标md5fes进行比较,所述步骤包括:
当md5加密结果第一目标md5es和第二目标md5fes相等时,则返回文件;
当md5加密结果第一目标md5es和第二目标md5fes不相等时,则提示文件不存在。
8.根据权利要求7所述的一种文件服务器访问分级方法,其特征在于,文件服务器接收请求参数集合{fi,token},对缓存的k-v进行对比,所述步骤包括:
当token值相同则返回文件;
当token值不相同则提示“文件不存在”。
9.根据权利要求8所述的一种文件服务器访问分级方法,其特征在于,0等级系统授权接口,所述步骤包括:
0级系统授权接口每天随机生成新的ras公钥和私钥对pubk和prik;
应用app通过时间戳t生成一个aes算法生成一个aeskey;
待加密字符串as=appid password t,然后使用第一步aes算法生成key进行加密的到r;
使用rsa算法的公钥对1生成的aeskey进行加密得到rkey=rsa(aeskey,pubk)。
10.根据权利要求9所述的一种文件服务器访问分级方法,其特征在于,使用rsa算法的公钥对1生成的aeskey进行加密得到rkey=rsa(aeskey,pubk)之后,所述步骤还包括:
构造请求参数集合{appid,rkey,r,t},请求授权接口;
授权接口接收appid后到通过授权信息表获取到pub-key和npassword,对rkey使用pub-key进行解密得到aeskey;
利用aeskey对r进行aes解密,获取到原字符串as;
后台拼接nas=appid npassword t,与as进行比较;
如果相同则授权,不同则不授权。
技术总结