《spring security in action》读书笔记

news2024/11/16 19:48:14

在这里插入图片描述

1. why

spring security 是强大的高度可定制的 身份验证 和 访问控制 应用级框架。

常见的漏洞包含:
身份验证失效,会话固定,跨站脚本xss请求伪造,CSRF注入敏感数据泄漏缺乏方法访问控制。

身份验证失效:
不能仅仅验证用户是否登陆,而要验证检索数据的用户是否是合法用户。

会话固定:
允许攻击者通过重复使用先前生成的会话ID来冒充有效用户。所以每次请求的 token 最好是可变的。

跨站脚本(xss):
允许将客户端脚本注入到服务器公开的 Web 服务中,从而允许其他用户运行这些服务。恶意脚本等等。

跨站请求伪造(CSRF):
在这里插入图片描述
注入攻击:
注入客户端脚本、SQL注入、XPath注入、操作系统命令注入、LDAP注入等等。要对用户的行为进行限制,输入内容进行校验,不能让他们有对系统进行损害的操作。比如 mybatis sql 注入,linux 命令 cd 到上一个目录,删除其他用户目录文件等等。

处理敏感数据的暴漏:
机密数据的泄漏,比如访问用户的时候,返回什么信息。本人登陆的时候可以返回用户名,手机号等等,但是其他相关用户只能看到它的用户名。公开的一些文件和数据集,不允许进行写操作等等。一些异常信息,可能会暴漏代码结构等等。

使用具有已知漏洞的依赖:
比如我们使用的包版本包含漏洞,那么我们就要及时更新来修复漏洞。

通过 spring security 来解决以上的问题。

2. demo

在这里插入图片描述
OAuth2授权流程:
用户访问应用程序中的用例,需要调用后端资源,必须获得访问权限 token ,发送用户凭据或刷新令牌。
如果凭据或者刷新令牌正确,授权服务器返回一个访问令牌给客户端。
向资源服务器请求的标头使用访问令牌时调用所需的资源。
在这里插入图片描述

一般401用于失败的身份验证,403意味着服务器识别了调用者请求,但是没有调用需要的权限。

在这里插入图片描述

spring security身份验证过程中各种组件之间的关系:

请求被过滤器拦截(authentication filter)——> 认证委托给(authentication manager)——> manager 使用(authentication provider)来实现身份验证——>provider 找到用户的详细信息,并使用密码校验验证密码——>认证结果返回给过滤器——>有关身份验证的实体详细信息存储在 security 上下文中。

3. 管理用户

  1. 处理密码
  2. 身份验证
  3. 实践:小型安全web应用程序
  4. 配置授权:闲置访问
  5. 配置授权:应用限制
  6. 实施过滤器
  7. 应用CSRF保护和CORS
  8. 实践:职责分离
  9. OAuth2如何工作
  10. OAuth2:实现授权服务器
  11. OAuth2:实现资源服务器
  12. 使用JWT和加密签名
  13. 全局方法安全性:授权前和授权后
  14. 全局方法安全性:授权前和过滤后
  15. 实践:Oauth2应用程序
  16. 用于反应式应用程序的Spring Security
  17. Spring Security 测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1074139.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于正点原子alpha开发板的第三篇系统移植

系统移植的三大步骤如下: 系统uboot移植系统linux移植系统rootfs制作 一言难尽,踩了不少坑,当时只是想学习驱动开发,发现必须要将第三篇系统移植弄好才可以学习后面驱动,现将移植好的文件分享出来: 仓库&…

一篇讲清楚Java for循环详解

for 语句是应用最广泛、功能最强的一种循环语句。大部分情况下,for 循环可以代替 while 循环、do while 循环。 for 语句是一种在程序执行前就要先判断条件表达式是否为真的循环语句。假如条件表达式的结果为假,那么它的循环语句根本不会执行。for 语句通…

七个有用的 GIT 命令

在这篇文章中,我将与你分享7个 GIT 命令。 它们是有用的简短命令,但有时我们会错过它们。 01、查看之前的分支 我们将从一个非常短的 git 命令开始这个列表。 有时,我们在分支机构工作。 对于某些季节,我们需要切换到另一个分支…

图片批量处理:将长图切割成短图,轻松高效!

在日常生活中,我们经常需要处理大量的图片,包括上传和下载的图片。有时候,我们可能需要将这些长图切割成几个短图,以便更好地管理和使用。但是,如何快速高效地完成这个任务呢?今天,我们将向你介…

ViewPager、RecycleView实现轮播图

1.ViewPager实现轮播图形效果。 1&#xff09;layout中&#xff0c;PageIndicatorView轮播的View <RelativeLayoutandroid:layout_width"match_parent"android:layout_height"200dp"android:orientation"vertical"><androidx.viewpager…

nio 文件传输

transferto方法一次只能传输2个g的数据 文件大于2个g时

双十一孩子护眼台灯应该怎么选?2023好用护眼台灯推荐

在快节奏的生活中&#xff0c;孩子的压力越来越大&#xff0c;越来越需要良好的光线进行学习&#xff0c;越来越多的家长考虑到孩子的视力问题&#xff0c;选择购买护眼台灯来为孩子提供良好舒适的光线环境&#xff0c;选择一款舒适的护眼台灯尤为重要&#xff0c;那么&#xf…

fastadmin 后台列表数据多表查询筛选

记录一下fastadmin后台列表数据连表查询筛选提示&#xff1a; 1&#xff1a;下拉框方式搜索 示例&#xff1a; 在对应js文件中添加如下代码&#xff1a; 代码&#xff1a; {field: s.area_id,title: __(所属片区),visible: false,//不显示在列表中operate: ,searchList: $.…

3.2.OpenCV技能树--二值图像处理--图像腐蚀与膨胀

文章目录 1.文章内容来源2.图像膨胀处理2.1.图像膨胀原理简介2.2.图像膨胀核心代码2.3.图像膨胀效果展示 3.图像腐蚀处理3.1.图像腐蚀原理简介3.2.图像腐蚀核心代码3.3.图像腐蚀效果展示 4.易错点总结与反思 1.文章内容来源 1.题目来源:https://edu.csdn.net/skill/practice/o…

芥墨 | 设计需要平衡那些我们都会跳跃的创意

在这个空间很显然&#xff0c;洞石是作为设计师的首选&#xff0c;在电视墙、壁炉、都用了温润柔和的洞石铺设而成。设计这个门洞也是请了设计师最喜爱的工匠合作&#xff0c;他们知道如何配合设计师&#xff0c;精准的执行&#xff0c;对细节有着极致的标准。

如何解决openal32.dll丢失,有什么办法解决

你第一次知道openal32.dll文件是在什么情况下&#xff0c;你了解过openal32.dll文件吗&#xff1f;如果电脑中openal32.dll丢失有什么办法可以解决&#xff0c;今天就教大家如何解决openal32.dll丢失&#xff0c;都有哪些办法可以解决openal32.dll丢失。 一&#xff0e;openal3…

解决: 使用html2canvas和print-js打印组件时, 超出高度出现空白页

如果所示&#xff1a;当我利用html2canvas转换成图片后, 然后使用print-js打印多张图片, 第一张会出现空白页 打印组件可参考这个: Vue-使用html2canvas和print-js打印组件 解决: 因为是使用html2canvas转换成图片后才打印的, 而图片是行内块级元素, 会有间隙, 所以被挤下去了…

基于YOLOv5的火灾烟雾检测系统

目录 1&#xff0c;YOLOv5算法原理介绍 2&#xff0c;代码实现 3&#xff0c;结果展示 1&#xff0c;YOLOv5算法原理介绍 YOLOv5是目前应用广泛的目标检测算法之一&#xff0c;其主要结构分为两个部分&#xff1a;骨干网络和检测头。 骨干网络采用的是CSPDarknet53&#xff…

机器学习必修课 - 交叉验证 Cross-Validation

想象一下你有一个包含5000行数据的数据集。通常情况下&#xff0c;你会将约20%的数据保留作为验证数据集&#xff0c;即1000行。但这会在确定模型得分时引入一些随机性。也就是说&#xff0c;一个模型可能在一组1000行数据上表现良好&#xff0c;即使在另一组1000行数据上表现不…

信息收集-01-WEB应用

针对各种应用的信息收集&#xff08;Web网站、APP应用、PC应用、小程序应用、微信公众号等&#xff09; 常见查询网址和平台 1.业务资产 企业资产分五类&#xff1a;Web应用、APP应用、PC端应用、小程序应用、微信公众号、其他产品 信息收集目标&#xff1a;某某企业、某某…

C语言打印菱形

一、运行结果图 二、源代码 # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int line 0;int i 0;int j 0;//获取变量值&#xff1b;scanf("%d", &line);//循环打印上半部分&#xff1b;for (i 0; i <…

解决nginx反向代理web service的soap:address location问题

原webservice是部署在tomcat上&#xff0c;使用的http协议端口是80&#xff0c;基于安全原因&#xff0c;需要升级使用https&#xff0c;使用了简单的方式在最外层加nginx做反向代理&#xff0c;业务调用webservice接口通过nginx再去访问。nginx需要开启SSL配置证书。 现在发现…

深度学习纯小白如何从零开始写第一篇论文?看完这篇豁然开朗!

&#x1f4e2;前言 上个月小贾消失了一段时间&#xff0c;原因就是。。。 写论文去啦&#xff01;&#xff01;&#xff01; 先拿我导的认可镇个楼&#xff1a; 本篇文章将分享我个人从迷茫地找方向→苦苦做了48次实验才高效涨点→写论文到头秃等等一系列真实经历&#xff0c…

2023年中国地面安全门产业链、市场规模及行业需求前景分析[图]

地面安全门是一种用于地下停车场或车库入口的特殊门类&#xff0c;通常是钢质或铝质制成&#xff0c;可以在地面上开启和关闭&#xff0c;使车辆能够进出停车场。地面安全门通常配备电动驱动系统和遥控器&#xff0c;方便用户远程控制门的开启和关闭。 地面安全门行业分类 资料…

网表导入virtuoso后发现pg pin忘记connect_pg_net/globalNetConnect怎么办?

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 数模混合项目中经常需要一些需要到virtuoso去连接的线,比如IO上的pg和一些信号线,除了在pr工作中设置skip route之外还需要做好net的赋值,告诉工具虽然我没在物理上有连接,但是实际上应该连什么…