51mee - AI智能招聘平台Logo
模拟面试题目大全招聘中心会员专区

在招聘管理系统中,不同角色(HR、求职者、管理员)有不同的操作权限(如HR只能查看自己公司的职位,求职者只能投递简历)。请设计权限控制方案,包括权限模型(RBAC)、权限校验的位置(服务端/客户端),并说明如何防止权限绕过攻击。

八方职达 | 广州创思信息技术有限公司后端开发难度:中等

答案

1) 【一句话结论】采用基于角色的访问控制(RBAC)模型,结合服务端核心权限校验,客户端辅助验证,并通过令牌绑定、操作日志审计等手段防止权限绕过,确保不同角色(HR、求职者、管理员)按权限操作。

2) 【原理/概念讲解】基于角色的访问控制(RBAC)的核心是用户-角色-权限的分层关系:

  • 用户属于一个或多个角色(如HR属于“招聘经理”角色,求职者属于“求职者”角色);
  • 角色关联一组权限(HR有“查看/发布职位”“审核简历”等权限,求职者只有“投递简历”权限);
  • 用户通过角色间接获得权限,而非直接分配权限。
    类比:就像公司里的“职位(角色)”对应“工作权限(权限)”,员工(用户)根据职位获得权限。RBAC的优势是简化权限管理,通过角色作为中间层,避免直接维护用户与权限的复杂关系。

3) 【对比与适用场景】

模型定义特性使用场景注意点
RBAC基于角色的访问控制,用户通过角色获得权限角色是权限的集合,用户绑定角色企业内部系统(如招聘系统、OA)、需要角色分层的系统需要合理设计角色,避免权限冗余或遗漏
ABAC(属性基访问控制)权限由用户属性、资源属性、环境属性动态决定权限动态计算,更灵活需求频繁变化的系统(如云资源访问)、敏感数据访问实现复杂,计算开销大

4) 【示例】(伪代码+请求示例)

  • 权限表设计:
    • 用户表(user_id, username, password)
    • 角色表(role_id, role_name)
    • 权限表(permission_id, permission_name)
    • 用户-角色关联表(user_role, user_id, role_id)
    • 角色-权限关联表(role_permission, role_id, permission_id)
  • 登录流程:用户登录后,服务端生成包含角色和权限的JWT令牌(如eyJ...roles=["hr","admin"],permissions=["viewJob","publishJob"])。
  • 请求校验示例:
    当HR请求“查看职位”时,服务端校验令牌中的角色(“hr”)是否包含“viewJob”权限,通过则返回职位列表,否则返回403错误。

5) 【面试口播版答案】
面试官您好,针对招聘管理系统的权限控制,我会采用基于角色的访问控制(RBAC)模型。首先,权限模型上,定义角色(如HR、求职者、管理员),每个角色关联权限(HR有查看/发布职位、审核简历;求职者只有投递简历)。用户登录后,服务端生成包含角色和权限的令牌,客户端存储令牌。请求时,服务端校验令牌中的角色和权限,比如HR请求查看职位,服务端验证角色为HR且权限包含“viewJob”,通过则返回数据。为了防止权限绕过,采用服务端核心校验(避免客户端伪造请求),令牌绑定用户身份(防止令牌泄露后滥用),并记录操作日志,定期审计。这样既能保证不同角色按权限操作,又能防止攻击。

6) 【追问清单】

  • 问:权限表如何设计?
    回答要点:设计三张核心表(用户表、角色表、权限表)及中间关联表(用户-角色、角色-权限),通过中间表实现灵活的权限分配(如HR加入“招聘经理”角色,自动获得对应权限)。
  • 问:如果角色权限需要动态调整,如何处理?
    回答要点:在角色表中维护权限列表,当HR修改职位发布权限时,更新角色-权限关联表,系统重新校验令牌中的权限,或令牌包含权限列表,动态更新。
  • 问:客户端如何辅助校验?
    回答要点:前端验证令牌的签名(如JWT的HMAC签名)和过期时间,若令牌无效或过期,提示用户重新登录,避免直接发送非法请求。
  • 问:如何防止权限绕过?
    回答要点:服务端校验所有关键操作(如投递简历、审核简历),不依赖客户端参数;使用HTTPS防止中间人攻击;日志记录异常操作,便于追踪。
  • 问:RBAC的扩展性如何?
    回答要点:新增角色(如“面试官”)时,只需在角色表中添加新角色并关联权限,用户加入该角色后自动获得权限,无需修改用户表。

7) 【常见坑/雷区】

  • 坑1:仅做客户端校验,服务端未校验,导致前端伪造令牌绕过权限。
  • 坑2:权限表设计不合理,角色与权限关联混乱,导致HR误操作求职者权限。
  • 坑3:忘记防绕过措施,如未记录操作日志,无法追踪权限滥用。
  • 坑4:令牌不绑定用户身份,导致令牌泄露后攻击者冒充用户。
  • 坑5:权限校验点遗漏,业务逻辑中直接判断用户是否为HR,绕过服务端校验。
51mee.com致力于为招聘者提供最新、最全的招聘信息。AI智能解析岗位要求,聚合全网优质机会。
产品招聘中心面经会员专区简历解析Resume API
联系我们南京浅度求索科技有限公司admin@51mee.com
联系客服
51mee客服微信二维码 - 扫码添加客服获取帮助
© 2025 南京浅度求索科技有限公司. All rights reserved.
公安备案图标苏公网安备32010602012192号苏ICP备2025178433号-1