当前位置: 首页 > news >正文

1.13-Web身份鉴权技术

1.13-Web身份鉴权技术

  web中常用的身份验证鉴权技术:

  Cookie,Session,Token,JWT,oauth2(开放授权)等

  参考文章:https://mp.weixin.qq.com/s/Z6rt_ggCA8dNVJPgELZ44w

  Token,JWT,oauth 是中大型网站一般使用的鉴权技术

  各鉴权技术的引用场景:

  http基本鉴权存在安全问题,不建议在企业使用,建议内部非涉密系统使用;

  Cookie+Session相对简单,建议在内网使用;

  token相对完善,推荐在外网使用;

  JWT推荐使用,常用在SSO单点登录中;

  OAuth灵活方便,对于第三方系统登录更友好。

  ​image

  安全漏洞问题:

  1、redirect_url 校验不严格导致code被劫持到恶意网站(fuzz各种bypass方式)

  2、client_id与redirect_url 不一致造成滥用劫持

  3、A应用生成的code可以用在B应用上

  4、state未设置csrf防护,导致csrf风险

  5、scope提权,将低scope权限的code用于高权限场景

  6、HTTP劫持,网络层中间人攻击

  7、点击劫持:通过点击劫持,恶意网站会在以下位置加载目标网站: 透明 iFrame(参见 [ iFrame ])覆盖在一组虚拟的顶部 精心构造的按钮直接放置在 目标站点上的重要按钮。当用户单击可见的 按钮,他们实际上是在单击一个按钮(例如“授权” 按钮)在隐藏页面上。

  ‍

  Authorization请求头出现时可能采用的就是以下认证方案,当发现区分出来不同的认证方案后,就采用对应的测试手段即可:

  参考文章:https://juejin.cn/post/7300812626279251987

  授权方案:

  1、Basic认证 —— 访问401,需要账号密码才能继续访问。响应头中会出现 www-Authenticate字段

  2、Digest认证

  3、Bearer认证

  4、JWT认证 —— JWT的三部分中 包含用户的个人信息

  5、API密钥认证

  6、双因素认证

  7、其他一些认证方式

  • Token = 上机卡 / 门票,证明你有权访问。

  • JWT = 一种带签名的电子门票,不仅证明你有权访问,还防止别人伪造或篡改。

  • JWT 全称 JSON Web Token,是一种“特别设计的 Token”。

  • 它的格式是:头部.载荷.签名​,三个部分拼在一起。

    • 头部(Header) :说明这是什么类型的 Token、用了什么加密算法。
    • 载荷(Payload) :存放信息,比如用户ID、过期时间。
    • 签名(Signature) :服务端对前两部分加密签过名,别人就不能随便篡改。

  ‍

  JWT和Token的安全问题:

  如果JWT被完整截获,也可以通过在请求包中添加请求头带上JWT来冒充别人的身份通过网站认证

  Token只是随机字符串,靠随机性来保证安全性,同样存在被截获的风险

  所以实际安全里,JWT/Token 一般会配合以下三点来保证安全:

  • HTTPS(防止传输被窃听)
  • 过期时间(即使被盗用,也只能用一会儿)
  • 刷新机制(定期换新的 Token)

  ‍

  Tips:

  虚拟机中的wireshark可以抓物理机网卡的数据包,只要在同一个网卡中 就可以

  现在HTTPS的协议一般是TLSv1.3,1.2的版本

http://www.dtcms.com/a/395037.html

相关文章:

  • 【完整源码+数据集+部署教程】水母图像分割系统: yolov8-seg-rtdetr
  • 《从零到精通:PyTorch (GPU 加速版) 完整安装指南
  • B站的视频资源转换为可用的MP4文件
  • 5. 数据类型转换
  • 有没有更多Java进阶项目?
  • Rada and the Chamomile Valley(Tarjan缩点+多源BFS)
  • Jfrog开源替代,推荐一款国产开源免费的制品管理工具 - Hadess
  • 《C++进阶之C++11》【列表初始化 + 右值引用】
  • 【Redis】:从应用了解Redis
  • 从零到一打造前端内存监控 SDK,并发布到 npm ——基于 TypeScript + Vite + ECharts的解决方案
  • 【星海随笔】RabbitMQ容器篇
  • OpenCV:人脸识别实战,3 种算法(LBPH/EigenFaces/FisherFaces)代码详解
  • OneSignal PHP SDK v2 版本实现指南
  • Dockerfile构建镜像以及网络
  • 鸿蒙音乐播放器基础实现
  • Vue3》》Vite》》文件路由 vite-plugin-pages、布局系统 vite-plugin-vue-layouts
  • 深入解析 MySQL MVCC:高并发背后的数据时光机
  • 汽车冷却系统的冷却水管介绍
  • 基础架构设计
  • 从分散到统一:基于Vue3的地图模块重构之路
  • JVM实际内存占用
  • Spark SQL 桶抽样(Bucket Sampling)
  • 常见的【垃圾收集算法】
  • 如何解决 pip install 安装报错 ModuleNotFoundError: No module named ‘django’ 问题
  • jvm之【垃圾回收器】
  • Tomcat基础知识
  • Will、NGC游戏模拟器 Dolphin海豚模拟器2509最新版 电脑+安卓版 附游戏
  • ELK企业级日志分析系统详解:从入门到部署实践
  • 2025年Spring Security OAuth2实现github授权码模式登录
  • Kafka面试精讲 Day 22:Kafka Streams流处理