# security **Repository Path**: yunwolf/security ## Basic Information - **Project Name**: security - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-06-30 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #微服务安全 基于慕课网JOJO老师微服务安全课程实现代码; ## 技术架构 - Spring cloud - JWT - Session - SSO - Docker - OAuth2 ## 基础环境 - mysql安装 - JDK安装 - STS安装(IDEA) ## API安全 ### 什么是API 就是提供服务的方式,通俗讲就是接口 #### 网络安全 防火墙,网络代理,https #### 应用安全 #### 信息安全 用户信息安全 ##### API安全的目标:CIA - 机密性 - 完整性 - 可用性 ##### 常见的API风险 - spoofing:欺骗 - Tampering: 干预 - Repudiation: 否认 - Information disclosure: 信息泄露 - Denial of service: 拒绝服务 - Elevation of privilege: 越权 ### API安全要素有哪些 ### API安全的基本机制 - 认证: 确保客户端真的是他自己 - 授权: 确保每个访问都是经过授权的 - 审计: 确保所有的操作都可追溯 - 流控: 防止用户请求淹没API - 加密: 确保出入的数据是私密的 ## 微服务网关安全 - sql注入 sql在使用${}符号的时候存在sql注入的风险 增加参数检验特殊字符等 控制数据库的权限 -简单限流 ```java package com.yulang.userapi.filter; @Component public class ReadLimitFilter extends OncePerRequestFilter { private RateLimiter rateLimiter = RateLimiter.create(1); @Override protected void doFilterInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, FilterChain filterChain) throws ServletException, IOException { System.out.println("==========================================================="); if(rateLimiter.tryAcquire()){ filterChain.doFilter(httpServletRequest,httpServletResponse); }else{ httpServletResponse.setStatus(HttpStatus.TOO_MANY_REQUESTS.value()); httpServletResponse.getWriter().write("too many request"); httpServletResponse.getWriter().flush(); return; } System.out.println("==========================================================="); } } ``` ## 微服务认证和SSO ## 微服务之间的安全 - JWT - CA - Sentinel ## 微服务监控和报警