01 2020 档案

摘要:1、微服务安全面临的挑战 在微服务的架构下,对比单体应用架构的API安全有哪些新的挑战呢? 1.1、更多的入口点,更高的安全风险 单体应用的场景下,入口点只有一个,所有的请求都会从这个入口点进来,在这个入口点去建立一组Filter或者Interceptor,就可以控制所有的风险。 微服务场景下,业务 阅读全文
posted @ 2020-01-31 17:54 caofanqi 阅读(1359) 评论(0) 推荐(0)
摘要:1、登陆 在前面,我们把图上常见的安全机制都做了一个简单的实现,但是登陆并没有在图中体现,因为并不是每次调用API的时候都需要登陆;登陆只是一个偶尔发生的事情,并不像图中的机制,每一次API的调用都贯穿在其中。但登陆也是整个安全机制中,重要的一环。 2、之前认证中(HttpBasic)存在的缺陷 在 阅读全文
posted @ 2020-01-30 01:44 caofanqi 阅读(589) 评论(0) 推荐(0)
摘要:1、授权 授权在整个安全机制中,是比较重要的一环,一般要考虑两个事情,一个是访问的请求需不需要身份认证,如果不需要直接放过,如果需要,但是没有认证,应该返回401,需要用户进行认证。另一个就是,认证了,看有没有该资源的访问权限,如果有,放行;如果没有返回403,无权限。 2、常见的访问控制 2.1、 阅读全文
posted @ 2020-01-29 17:13 caofanqi 阅读(752) 评论(0) 推荐(0)
摘要:1、审计所在安全链路的位置,为什么 如图所示,审计应该做在认证之后,授权之前。因为只有在认证之后,我们在记录日志的时候,在知道请求是那个用户发过来的;做在授权之前,哪些请求被拒绝了,在响应的时候,也可以把它记录下来。如果放到授权之后 ,那么被拒绝的请求就不能记录了。 审计日志一定要持久化,方便我们对 阅读全文
posted @ 2020-01-29 01:48 caofanqi 阅读(1804) 评论(0) 推荐(0)
摘要:1、为什么要使用https 以用户注册为例,通过数据校验,可以保证用户传给我们的密码是完整有效的。数据进来之后,通过我们的处理,存放到数据库中的密码是经过加密的,也是安全的。但是还有一点,就是用户的请求在到达我们应用之前的一个安全,怎么来保证?用户注册的请求,在到达服务器之前,就被别人给截获了。用户 阅读全文
posted @ 2020-01-28 21:05 caofanqi 阅读(681) 评论(0) 推荐(0)
摘要:1、密码为什么要加密 存在数据库中的密码如果是明文,一旦数据库数据泄漏了,别人就可以拿着你的账号密码为所欲为。更何况有很多人在各个平台的用户名密码都是一致的。所以用户的密码,一定要加密存储。 2、加密算法的种类 2.1、对称加密,指的是需要对加密和解密使用相同密钥的加密算法。常见的对称加密算法有:D 阅读全文
posted @ 2020-01-28 16:05 caofanqi 阅读(1302) 评论(0) 推荐(0)
摘要:1、为什么要做数据校验 要保证系统的安全性,健壮性,数据校验必不可少,校验参数的合法性,不能因为前端或者其它调用段因为参数传的不对导致我们的系统报错。 2、开发中参数校验做在哪里 一般都是做在接口层面,对传入的参数进行校验。 3、Bean Validation 对于Controller接口的参数校验 阅读全文
posted @ 2020-01-28 01:58 caofanqi 阅读(2155) 评论(0) 推荐(0)
摘要:1、什么是认证 认证是指我们去验证用户身份是否合法的过程。 2、认证和登陆的区别 很多人会把认证和登陆混为一谈,其实两者完全是两个概念。认证不是登陆,登陆是指用户获取身份证明的一个过程,认证是指我们去验证这个用户身份是否合法的过程。 登陆的行为,往往只发生一次,登陆成功后,会保存一段时间用户信息。而 阅读全文
posted @ 2020-01-21 17:04 caofanqi 阅读(731) 评论(0) 推荐(0)
摘要:1、什么是流控 所谓流控,就是流量控制,也称作限流。只放系统能够处理的请求数量过去。 2、为什么要做流控 保证系统的可用性,防止大流量把系统压死。如果系统不可用。其实做什么都没有意义了。还以用作安全目的,比如可以减慢暴力密码破解的速率。还可以用来抵御DDOS攻击。 3、流控为什么要在整个安全机制链路 阅读全文
posted @ 2020-01-21 12:05 caofanqi 阅读(1835) 评论(0) 推荐(0)
摘要:1、什么是注入攻击 使用了用户输入的但是我们没有校验过的数据,来拼装一个可以行的指令,交给系统去执行,结果导致执行了我们不希望发生的命令。注入攻击用很多种,最常见的是SQL注入。 2、SQL注入攻击 Java程序员知道,使用Statement进行查询时会造成SQL注入攻击,从而使用PreparedS 阅读全文
posted @ 2020-01-20 22:38 caofanqi 阅读(3374) 评论(0) 推荐(0)
摘要:1、什么是API? 百度百科给出的定义如下: API(Application Programming Interface,应用程序接口)是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。 目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问原码,或理解内部工作机制 阅读全文
posted @ 2020-01-20 20:04 caofanqi 阅读(5840) 评论(0) 推荐(0)
摘要:使用之前配置的两个DataSource,配置类如下: MultiDataSourceApplication: /** * 启动类 * @author caofanqi */ @EnableAsync @SpringBootApplication @EnableTransactionManagemen 阅读全文
posted @ 2020-01-09 23:50 caofanqi 阅读(1333) 评论(0) 推荐(0)
摘要:1、@EnableTransactionManagement 该注解用于启用Spring的注释驱动事务管理功能,用于@Configuration类。配置后会负责注册必要的Spring组件,为注解驱动事务管理提供动力。例如TransactionInterceptor和基于代理或AspectJ的通知,在 阅读全文
posted @ 2020-01-09 23:38 caofanqi 阅读(1437) 评论(0) 推荐(0)
摘要:1、SpringBoot 2.2.x默认使用的DataSource SpringBoot 2.2.x版本,默认使用的DataSource是HikariCP,可以直接通过注入DataSource,并打印出打印全限定名,可以查看。 或可以通过查看自动配置源码,来找到: @SpringBootApplic 阅读全文
posted @ 2020-01-09 23:24 caofanqi 阅读(5309) 评论(0) 推荐(0)