一种越权访问防护方法、系统、电子设备及存储介质与流程

摘要: 本发明涉及网络访问控制,尤其涉及一种越权访问防护方法、系统、电子设备及存储介质。背景技术:1、web业务系统广泛应用于各类企业数字化平台,通常将业务拆分为列表查...
一种越权访问防护方法、系统、电子设备及存储介质与流程

本发明涉及网络访问控制,尤其涉及一种越权访问防护方法、系统、电子设备及存储介质。

背景技术:

1、web业务系统广泛应用于各类企业数字化平台,通常将业务拆分为列表查询、详情查看、文件上传下载等多个接口,依靠前后端交互完成数据展示与资源分发。由于接口中资源标识(如数据id、文件url)往往具有可预测的规律性,攻击者可通过穷举id或分享直链的方式绕过前端页面流转逻辑直接访问明细数据,在多用户并发访问场景下接口越权窃取数据的安全风险持续增加,如何低成本、低侵入地实现接口访问权限管控成为web安全运维的重点需求。

2、目前行业主流解决方案是在后端业务代码内增加多层鉴权逻辑,每次请求均校验用户身份与资源访问权限,依靠代码层逐接口鉴权仅允许用户访问自身关联数据,以此阻挡id伪造、直链访问等越权行为。

3、但该改造方式需要大规模修改原有业务代码,侵入性极强,不仅重复鉴权加重服务器负载,且一旦上线后发现鉴权设计缺陷,修复周期长,临时处置只能通过封堵账号或下架资源等牺牲正常业务的方式应对,同时仍存在攻击者通过穷举id绕过页面流转逻辑直接访问明细数据导致越权窃取的安全漏洞。

技术实现思路

1、本发明实施例提供一种越权访问防护方法、系统、电子设备及存储介质,能够解决现有技术中后端重复鉴权负载高、安全漏洞响应滞后、防护方案侵入业务系统的问题。

2、为达到上述目的,本发明的实施例采用如下技术方案:

3、第一方面,提供一种越权访问防护方法,应用于前端服务器,包括:响应于用户的第一访问请求,将所述第一访问请求转发至后端服务器,从所述后端服务器返回的第一响应数据中提取至少一个数据标识,将所述至少一个数据标识与所述用户的会话标识关联存储,作为所述会话标识对应的白名单数据;响应于所述用户的第二访问请求,从所述第二访问请求中提取目标数据标识,判断所述目标数据标识是否存在于所述会话标识对应的白名单数据中;若所述目标数据标识存在于所述白名单数据中,则将所述第二访问请求转发至所述后端服务器,以使得所述后端服务器返回与所述目标数据标识对应的响应数据。

4、本发明提供的方法通过在前端服务器建立基于会话上下文的访问控制机制,在用户访问列表数据时从前端服务器转发的响应中提取数据标识并建立白名单,在用户请求明细数据时先于后端服务器进行白名单校验,仅放行已获授权的数据标识,从而在不修改后端业务代码的前提下,从前端代理层拦截越权访问请求。一方面,白名单数据在用户正常业务流程中自动生成,无需额外的权限配置操作;另一方面,越权判定在请求到达后端服务器之前完成,既避免了后端重复鉴权的性能开销,又实现了对越权访问的实时阻断。

5、在第一方面的一种可能的实现方式中,所述方法还包括:若所述目标数据标识不存在于所述白名单数据中,则判定所述第二访问请求为越权访问,执行预设的安全处置动作。

6、在第一方面的一种可能的实现方式中,所述会话标识通过以下方式获得:从所述用户的访问请求中提取会话标识字段,所述会话标识字段承载于cookie或url参数中。

7、在第一方面的一种可能的实现方式中,所述从所述后端服务器返回的第一响应数据中提取至少一个数据标识,包括:通过正则表达式对所述第一响应数据的响应体进行匹配,提取符合预设字段格式的数据标识,所述预设字段格式用于描述所述数据标识在所述响应体中的键值对结构。

8、在第一方面的一种可能的实现方式中,所述将所述至少一个数据标识与所述用户的会话标识关联存储,包括:将所述会话标识和所述至少一个数据标识存入红黑树结构,所述红黑树结构以所述会话标识为维度组织,每个会话标识对应一个数据标识集合。红黑树作为一种自平衡二叉查找树,其插入和查找操作的时间复杂度均为对数级别,能够适配前端服务器高并发请求场景下对白名单数据的快速存取需求。

9、在第一方面的一种可能的实现方式中,所述数据标识集合按照缓存策略进行维护,所述缓存策略包括会话级缓存和动作级缓存;当所述缓存策略为会话级缓存时,所述数据标识集合中的数据标识在所述会话标识对应的会话有效期内持续有效,所述用户在前序访问请求中获取到的所有数据标识均保留于所述白名单数据中;当所述缓存策略为动作级缓存时,所述数据标识集合在每次新的第一访问请求到达时被清空,并基于当次第一访问请求的响应数据重新填充。

10、会话级缓存适用于用户可在会话期间内多次访问已浏览数据的宽松授权场景,动作级缓存适用于严格要求按页面逻辑顺序访问数据的严格授权场景,两种策略可通过配置灵活切换以适应不同安全等级的业务需求。

11、在第一方面的一种可能的实现方式中,所述方法还包括:以预设时间间隔遍历所述红黑树结构,当检测到任一会话标识对应的访问时间戳与当前时间的时间差超过预设超时时长时,删除所述会话标识及所述会话标识对应的数据标识集合。

12、本发明提供的方法通过定时清理超时会话及其白名单数据,避免无效会话长期占用内存资源,确保前端服务器的存储空间得到高效复用。

13、在第一方面的一种可能的实现方式中,所述方法还包括:当接收到所述用户用于维持会话在线的会话心跳请求时,更新所述红黑树结构中对应会话标识的访问时间戳。

14、在第一方面的一种可能的实现方式中,所述预设的安全处置动作包括以下至少一种:向发起所述第二访问请求的客户端返回预设的错误状态码;将发起所述第二访问请求的客户端定向至预设页面。

15、错误状态码方式可使客户端明确获知访问被拒绝,重定向方式可将用户引导至登录页或其他安全页面,两种方式可依据业务系统的实际需求配置选用。

16、在第一方面的一种可能的实现方式中,所述前端服务器为nginx服务器。

17、在第一方面的一种可能的实现方式中,所述方法还包括:接收所述用户登录成功后经所述后端服务器触发的首个业务请求,在所述前端服务器中为所述用户创建新的会话标识并记录初始访问时间戳。

18、第二方面,本发明提供了一种越权访问防护系统,部署于前端服务器,包括:会话识别模块,用于识别用户的会话标识并维护会话状态;数据标识加白模块,用于在所述用户的第一访问请求被转发至后端服务器后,从所述后端服务器返回的第一响应数据中提取至少一个数据标识,将所述至少一个数据标识与所述会话标识关联存储,作为所述会话标识对应的白名单数据;越权判定模块,用于在所述用户的第二访问请求到达时,从所述第二访问请求中提取目标数据标识,判断所述目标数据标识是否存在于所述会话标识对应的白名单数据中;若存在则将所述第二访问请求转发至所述后端服务器,以使得所述后端服务器返回与所述目标数据标识对应的响应数据;若不存在则判定所述第二访问请求为越权访问并执行预设的安全处置动作。

19、第三方面,提供一种电子设备,电子设备包括存储器、一个或多个处理器;存储器与处理器耦合;其中,存储器中存储有计算机程序代码,计算机程序代码包括计算机指令,当计算机指令被处理器执行时,使得电子设备执行如第一方面任一实现方式中的方法。

20、第四方面,提供一种计算机可读存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行如第一方面任一实现方式中的方法。

21、第五方面,提供计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行第一方面任一实现方式中的方法。

22、可以理解地,上述提供的第二方面的系统,第三方面的电子设备,第四方面的计算机可读存储介质,第五方面的计算机程序产品所能达到的有益效果,可参考第一方面及其任一种可能的设计方式中的有益效果,此处不再赘述。