AI爬虫世界窥镜
336 subscribers
233 photos
6 videos
16 links
AI 爬虫与数据采集

黑客渗透破解拿站改单

🛫一切有关于AI业务

咨询:@yucgz
Download Telegram
Channel created
从 Shiro 底层源码看 Shiro 漏洞
第一部分来介绍 Shiro 的基本使用, 清晰的感受到 Shiro 框架给程序员带来的便捷.

第二部分来介绍 Shiro 底层源码的分析, 感受该框架设计的精妙.

第三部分来介绍 Shiro 漏洞分析, 在这里我们会梳理底层源码分析的流程, 一步一步涉及到漏洞点的产生, 顺便记载一下 Shiro 的攻击姿势.
权限管理
概念
为了实现不同身份登录系统, 出现的功能模块不一样. 这个需求叫做权限管理.
学生登录后, 出现的功能模块为: 选课, 成绩查询, 课程表
老师登陆后, 出现的功能模块为: 学生管理, 成绩录入
那么有了这个基础的概念之后, 我们再看一个比较复杂的权限管理案例:
为了实现不同身份登录系统, 出现的功能模块不一样. 这个需求叫做权限管理.
学生登录后, 出现的功能模块为: 选课, 成绩查询, 课程表
老师登陆后, 出现的功能模块为: 学生管理, 成绩录入
那么有了这个基础的概念之后, 我们再看一个比较复杂的权限管理案例:
🌸群组规章制度🌸

⚠️以下内容严格禁止,违者将被移除群聊并永久封禁:

政治相关: 挑起争端、攻击他人、参与政治讨论或反华言论
非法行为: 讨论或推广网络赌博、吸毒、开盒等违法活动
法轮宣传: 传播法轮功相关内容或蛊惑他人
色情内容: 分享儿童色情、大量色情图片或视频
扰乱秩序: 发布链接、广告、刷屏

❗️群组须知❗️

本群所有资源(包括图片、视频、软件、链接、文件、讨论等)仅限用于医学讨论和生物研究,不得用于其他目的。本群对任何非指定用途的行为不承担责任。
如有成员将群内资源用于传播负能量、骚扰他人、造谣、侵犯隐私、伪造信息、非法牟利或任何违法行为,所有后果由行为人自行承担,与本群无关。

⚠️特别警告⚠️

未经许可,禁止利用群内资源谋取私利或转发至其他平台进行不当使用。
禁止使用软件、机器人等工具恶意复制或传播群内内容,违者自行承担后果,与本群无关。
未成年人须知:年龄不是违反规定的借口,所有成员均须遵守规则,违规者将面临相同处罚。

🛡免责声明🛡

本群不具备任何商业用途,所有资源仅供研究与讨论之用。一旦资源离开本群,其使用与本群及管理员无关。

本群保留对规则的最终解释权及执行权。
Please open Telegram to view this post
VIEW IN TELEGRAM
这种方式适用于权限管理比较单一, 用户少, 每类用户权限固定的场景. 根据不同的页面来实现功能不一致的情况.
这种方式的缺点则是, 假设需要在销售人员主页增加新的功能时, 我们需要修改index1.html页面内容, 增加上新的功能, 需要后期慢慢维护.
这种基于页面的开发, 是不建议的.
第二种方式
这一种设计是RBAC (基于角色的访问控制)的基本原型, 也不是最终版本, 看起来已经实现动态的显示功能效果了. 但是这里会存在一个问题.
假设我们新增了一个Heihu577用户, 那么我们就需要在用户权限表中增加很多权限, 那么假设Heihu577用户所需要的权限与liucheng用户权限一致, 那么用户权限表中又需要给Heihu577用户分配很多权限id, 直到与用户liucheng的权限id是一致的, 这样大大减少了灵活性.
那么这里我们需要引入角色的概念, 角色是什么?我们不妨看下图进行理解.
现在的权限分配, 是根据角色的, 我们只需要指明某个用户是某个角色, 即可得到该角色的具体权限. 而这么做的弊端则是, 假设A & B用户是同一角色, 而我们希望某一功能只给A用户而不给B用户, 这个时候怎么办呢?
我们只需要增加一个用户权限表, 将额外的权限分配给具体用户即可, 当然随着业务逻辑的复杂, 我们的表也跟着复杂化了. 那么除了表结构的设计, 还需要我们程序设计的思想:
而这里过滤器/拦截器部分我们也可以自己写流程, 判断当前是否是登录状态, 是否有SESSION等. 当我们考虑不全面时程序也可能出现BUG.
而这种情况我们也可以选择使用安全框架, 帮助我们在应用系统开发过程完成认证以及授权的工作. 而安全框架类似于一个保安的角色:
这是一个演唱会的案例, 根据你的门票类别, 到达具体的座位, 当然这一切都需要你去告诉这个保安如何匹配规则, 换到程序里, 我们也仅仅做一个配置即可. 而这里我们就可以选择使用 Shiro, Shiro 就做了这些事情, 类似于 Shiro 的框架还有很多, Spring Security, OAuth2等.
Shiro
Shiro 的核心功能如下: