架构师训练营第 11 周学习总结
* 安全架构
* Web 攻击与防护
* XSS 攻击
* 对 HTML 危险字符转义
* SQL 注入攻击
* 正则匹配 SQL 关键字
* SQL 预编译参数绑定
* CSRF 攻击
* 表单增加 token,后台校验
* 要求用户输入验证码
* 检查请求头里面的 Referer 字段
* 其他常见漏洞的预防
* 关闭错误回显
* 清理 HTML 注释
* 只允许上传特定的文件
* 资源独立服务器,不要暴露文件路径
* Web 应用防火墙 ModSecurity
* 网站安全漏洞扫描
* 加密与解密
* 加密类型
* 单向散列加密
* 对称加密
* 非对称加密
* 密钥服务系统架构
* 密钥分片存储
* 密钥管理
* 开发申请密钥获取到 token
* 应用通过 token 获取完整的密钥
* 反垃圾与风控
* 贝叶斯分类算法
* 布隆过滤器黑名单
* 风险控制
* 规则引擎
* 机器学习
* 高可用架构
* 高可用系统的度量
* 可用性指标 = (1 - 网站不可用时间 / 年度总时间)* 100%
* 故障分管理 - 拆解可用性指标到团队和个人
* 高可用架构技术
* 解耦 - 降低模块的耦合度
* 隔离
* 子系统隔离
* 微服务与中台架构
* 生产者消费者隔离
* 虚拟机与容器隔离
* 异步
* 多线程编程
* 反应式编程
* 异步通信网络编程
* 事件驱动异步架构
* 备份
* 负载均衡集群
* 数据库复制
* 失效转移
* 幂等
* 事务补偿
* 传统事务的 ACID
* 分布式事务的 BASE
* 通过执行业务逻辑逆操作,使事务回滚到事务前状态
* 重试
* 熔断
* 限流
* 固定窗口算法
* 滑动窗口算法
* 令牌桶算法
* 漏桶算法
* 自适应限流
* 降级
* 异地多活
* 高可用系统的运维
* rolling 发布
* 自动化测试
* 自动化部署
* 预发布验证
* 代码版本控制
* 自动化发布
* 灰度发布
* 网站运行监控
* 故障案例分析总结
* 日志级别设置: 第三方组件 Fatal;应用程序 Warn 或者 Error
* 系统常用页面不应该访问数据库
* 加锁的方法尽量不要进行长时间的 IO 操作,或者使用不同的锁对象
* 缓存服务器跟应用服务器应该是同样的管理级别,避免缓存雪崩
* 应用服务器启动完成后再接收用户请求
* 隔离大文件的读写,避免影响小文件的读写
* 不能滥用生产环境,规范生产环境的访问
* 加强代码审查,避免简单错误导致系统崩溃
* 注意空指针引用问题
评论