《spring security in action》读书笔记

在这里插入图片描述

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.mzph.cn/news/98698.shtml

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

相关文章

[尚硅谷React笔记]——第3章 React应用(基于React脚手架)

目录: react脚手架创建项目并启动react脚手架项目结构一个简单的Hello组件样式的模块化功能界面的组件化编码流程(通用)组件的组合使用-TodoList 1.react脚手架 xxx脚手架: 用来帮助程序员快速创建一个基于xxx库的模板项目 包含了所有需…

/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21‘ not found (required by

在某项目中遇到下面的错误, ./model2trt_v2: /lib64/libstdc.so.6: version GLIBCXX_3.4.21 not found (required by ./model2trt_v2) ./model2trt_v2: /lib64/libstdc.so.6: version GLIBCXX_3.4.21 not found (required by ../../../lib/linux_lib/libcuda_utils…

QT之可自由折叠和展开的布局

介绍和功能分析 主要是实现控件的折叠和展开,类似抽屉控件,目前Qt自带的控件QToolBox具有这个功能,但是一次只能展开一个,所以针对自己的需求可以自己写一个类似的功能,这里实现的方法比较多,其实原理也比较…

2023.10.02 win7x64sp1下Navicat_Premium15_x86连接Oracle_10g(安装在win2003x86)

Oracle_10g安装在这个版本的系统里: Microsoft Windows [版本 5.2.3790] 这个win2003_x86(分配内存1G)安装在vmware虚拟机里. 安装包文件名为:oracle 10g_win32.zip 大小约624 MB (655,025,354 字节) 安装完毕后,tcp1521端口应该开放: Microsoft Windows [版本 5.2.3790]…

Matlab参数估计与假设检验(举例解释)

参数估计分为点估计和区间估计,在matlab中可以调用namefit()函数来计算参数的极大似然估计值和置信区间。而数据分析中用得最多的是正态分布参数估计。 例1 从某厂生产的滚珠中抽取10个,测得滚珠的直径(单位:mm)为x[…

Git入门详解

Git入门详解 本文承接上文 Git入门简介 并做了内容扩充。本文讲述Git工具的安装、配置及使用友情参考链接:https://gitee.com/all-about-git 1. Git安装 安装官网:https://git-scm.com/安装过程如下: 双击.exe默认安装即可 2. Git配置 …

云安全之下一代防火墙介绍

防火墙的概念 下一代防火墙(Next Generation Firewall,NGFW)是一种可以全面应对应用层威胁的高性能防火墙。通过深入洞察网络流量中的用户、应用和内容,并借助全新的高性能单路径异构并行处理引擎,NGFW能够为用户提供…

掌握核心技巧就能创建完美的目录!如何在Word中自动创建目录

目录是Word布局的一个重要因素,尤其是在编写较长的文档时。那么,你如何在你的作品中添加目录呢?在这篇文章中,我将分享一些基于Word2016自动创建目录的经验。希望它能或多或少地帮到你。 自动创建目录 1、输入目录文本的名称&am…

【Redis】Redis中的数据结构和内部编码

Redis中的数据结构和内部编码 type命令实际返回的就是当前键的数据结构类型,它们分别是:string(字符串)、list(列表)、hash(哈希)、set(集合)、zset&#xf…

第二证券:华为全液冷超充上线,高压快充概念爆发,双杰电气等涨停

受华为全液冷超充上线消息提振,高压快充概念9日盘中强势拉升,到发稿,双杰电气、永贵电器“20cm”涨停,英可瑞、易事特涨超13%,伊戈尔、协鑫能科、宝馨科技、日丰股份等涨停,万祥科技、星云股份涨近8%。 消…

禁用Chrome自动更新

chrome浏览器会强制用户自动更新,每次点击关于google时,会自动检测更新并下载,非常不好 1. 进入%userprofile%\AppData\Local\Google文件夹 2. 找到其中的Update文件夹,右键属性-安全,将所有组/用户的权限设置为拒绝…

计算机视觉简介(1)

任何计算机视觉处理流程都始于成像系统,它从景物中捕获反射出来的光线,并将光信号转换成计算机可以读取和处理的图像格式 在计算机成像技术发展的早期,图像通过把胶卷或印刷图像素 化后获得;而现在图 像通常直接由数码相机获取&a…

mysql面试题25:数据库自增主键可能会遇到什么问题?应该怎么解决呢?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:数据库自增主键可能会遇到什么问题? 数据库自增主键可能遇到的问题: 冲突问题:自增主键是通过自动递增生成的唯一标识符,但在某些情况下可能会…

xlsx使用table_to_book报错Uncaught Unsupported origin when DIV is not a TABLE

背景:const workbook XLSX.utils.table_to_book(document.querySelector(‘#table-export’),{ raw: true//保留原始字符串 })报错Uncaught Unsupported origin when DIV is not a TABLE 原因:el-table是div格式 过程1:获取深层次的table…

简单聊聊 TCP 协议

简单聊聊 TCP 协议 如何实现可靠传输 ?完全可靠存在比特差错存在丢包流水线可靠数据传输协议回退N步 (GBN)选择重传 (ARQ) 小结 TCPTCP 连接报文段结构序号和确认号 可靠数据传输避免重传超时时间加倍快速重传回退N步还是选择重传 流量控制连接管理拥塞控制拥塞原因拥塞控制方…

Nacos 监控手册

Nacos 0.8.0版本完善了监控系统,支持通过暴露metrics数据接入第三方监控系统监控Nacos运行状态,目前支持prometheus、elastic search和influxdb,下面结合prometheus和grafana如何监控Nacos。与elastic search和influxdb结合可自己查找相关资料…

开发者指南:如何集成一对一直播美颜SDK到你的应用中

本文将为开发者们提供一个详细的指南,教你如何将一对一直播美颜SDK集成到你的应用中,以提供更具吸引力的直播体验。 -为什么选择一对一直播美颜SDK? 在开始之前,让我们先明确一下为什么选择一对一直播美颜SDK是一个明智的决定。…

uni-app:实现页面效果4(echarts数据可视化)

效果 代码 <template><view><view><view class"title">概况</view><view class"line_position"><view class"line1"><view class"item"><view class"one">今日销售…

图像分块及拼接

原图&#xff1a; 分块结果&#xff1a; 拼接结果&#xff1a; 代码&#xff1a; import numpy as np import cv2 as cv import matplotlib.pyplot as pltdef get_patch(img,patch_size):imgs []h,w,n img.shapenew_h, new_w patch_size, patch_sizecolint(w/patch_siz…

Ubuntu 20.04使用源码安装nginx 1.14.0

nginx安装及使用&#xff08;详细版&#xff09;是一篇参考博文。 http://nginx.org/download/可以选择下载源码的版本。 sudo wget http://nginx.org/download/nginx-1.14.0.tar.gz下载源代码。 sudo tar xzf nginx-1.14.0.tar.gz进行解压。 cd nginx-1.14.0进入到源代码…