第十一周学习总结
一、安全
👉常见攻击:XSS攻击,防御手段——对html危险字符转义;SQL注入,防御手段——正则匹配,过滤请求数据中可能注入的SQL;CSRF攻击,防御手段——表单token、验证码、Referer check检查请求来源。
👉其他需要关注的:Error Code、HTML注释、文件上传、路径遍历
👉防火墙
👉安全漏洞扫描
👉加密:单向散列加密、对称加密、非对称加密
👉反垃圾邮件,常用贝叶斯分类算法、布隆过滤器黑名单
👉规则引擎
二、高可用
👉可用性指标:
网站年度可用性指标=(1-网站不可用时间/年度总时间)✖100%
网站不可用时间(故障时间)=故障修复时间点-故障发现(报告)时间点
99%--基本可用;99.9%--较高可用;99.99%--高可用;99.999%--极高可用性
👉故障分
👉引起故障的原因:硬件故障、软件bug、系统发布、并发压力、网络攻击、外部灾害
👉高可用架构思路/策略:
1、解耦:高内聚、低耦合的设计原则;面向对象基本设计原则;面向对象设计模式;领域驱动设计建模
2、隔离:业务与子系统隔离、微服务与中台架构、生产者消费者隔离、虚拟机与容器隔离
3、异步:多线程编程、反应式编程、异步通信网络编程、事件驱动异步架构
4、备份:集群设计、数据库复制
5、失效转移:数据库主主失效转移、负载均衡失效转移
6、幂等:服务重复调用有时候无法避免,要求服务具有幂等性
7、事务补偿:通过执行业务逻辑逆操作,使事务回滚到事务前状态
8、重试:调用者可以通过重试的方式修复单次调用的故障
9、熔断:服务出现故障,使用断路器阻断对故障服务的调用
10、限流:系统访问量超过了系统的承载能力,通过限流对系统进行保护
——计数器算法(固定窗口:在一个周期内累加访问次数)(滑动窗口:将时间窗口进行划分,优化固定窗口面临的临界问题)
——令牌桶算法(以固定速度增加令牌,直到桶满;请求会获取令牌,无令牌可取,会触发限流)
——漏桶算法(请求不限,到达限流值后,以固定速率释放请求)
11、降级:在系统高并发的时候,将非核心功能关闭
12、异地多活:将数据中心分布在多个不同地点的机房里
👉运维:
1、发布:发布过程事实上和宕机效果相当,用宕机高可用方案应对。
2、自动化测试
3、自动化部署
4、持续部署三步走:持续集成、持续交付、持续部署
5、预发布验证
6、代码版本控制:(主干开发,分支发布)、(分支开发,主干发布)
7、自动化发布
8、灰度发布(服务器一小批一小批发布)
9、网站运行监控
——监控数据采集:用户行为日志收集;服务器性能监控;业务运行数据报告;
——监控管理:报警、自动控制(自动失效转移、自动扩容、自动限流)
👉高可用价值观
保持简单,使问题易于发现,快速解决;
目标明确,解决特定环境下的具体问题;
价值回归,成本收益要合理。
👉总结:身处在小公司,安全的根基还是制定完善开发规范,让代码安全;对于高可用而言,还是一个远景,即便采用了分布式架构,很多应用服务仍然采用单体在运行,需要在技术进步的道路上读万卷书,行万里路。
评论 (1 条评论)