Week_11 总结
安全架构
web攻防
xss攻防
一种是直接利用用户点击不安全的网址,获取到恶意脚本,这种恶意脚本在用户使用浏览器时执行,然后通过类似一传二,二传四的方式将恶意脚本进行广泛传播。课程中描述了针对微博用户的xss攻击,恶意脚本利用用户合法身份,通过社交网络将其传播,以到达其目的;
另一种是攻击者直接将恶意js脚本,通过某种手段放入服务端的数据库。当其他用户访问时,将恶意脚本在本地浏览器执行,达到攻击的目的。
对于xss的防御手段,直接有效的是“消毒”。由于xss是通过请求内嵌恶意脚本达到目的,所以对用户输入的某些危险字符进行转义,使其不能在服务端或者浏览器中执行。
sql注入
攻击者通过某种方式,获取到服务端数据库的表结构信息。在发送请求时,携带恶意sql命令,服务端收到请求,进行数据库操作时,执行了恶意sql,以达到其目的。
获取表结构手段:
开源:网站通过开源软件搭建,数据库结构是公开的
错误回显:错误回显一般用于开发调试,当网站开启错误回显时,攻击通过构造非法参数,根据服务返回的信息,猜测数据库表结构
盲注:攻击者根据页面变化,猜测sql执行情况,以此猜测数据库表结构
防御手段:
进行请求参数消毒,正则匹配等方式过滤可能的sql注入。
sql预编译参数绑定,使注入sql当成sql参数,而不使其单独执行
csrf攻击
跨站点请求伪造,用户登录受信服务器期间,访问攻击者的钓鱼网站或者服务器,在其应答中包含了受信服务器的请求。然后在用户不知情的情况下,受信服务执行了用户端发来的伪造请求,达到了攻击目的
csrf是通过构造用户请求达到目的,防御手段:
表单token:页面表单中增加一个只有服务器知道的token,每次请求提交后,验证token是否有效合法
验证码:请求提交时,需要输入服务端给的验证码,验证通过则可访问
referer check: http请求头中referer 记录请求来源,以验证合法性
其他
错误回显
html注释
文件上传
路径遍历
安全架构方式
开源web应用防火墙
网站安全漏洞扫描
加密解密
单向散列加密

对称加密

非对称加密

密钥安全管理架构

整个架构中,有专门的密钥管理系统。使用密钥前,申请者向密钥服务器申请密钥,确定加解密算法和密钥等,密钥管理者确认后返回相应token,同时生成相应密钥,分片存储到不同的设备上。应用服务请求时,拿token访问密钥服务器,密钥服务根据token获取完整密钥和加解密算法,之后应用程序进行加解密运算
反垃圾与风控
反垃圾邮件

贝叶斯分类算法:以概率的方式,确定垃圾邮件。对邮件进行分类提取特征值,通过大批量样本分类训练,得出分类模型,通过该模型判断邮件是否是垃圾邮件
布隆过滤器黑名单:将垃圾邮箱地址hash后的值,放入一个较大值空间内,以bit位方式进行存储,验证新邮件时,判断是否在布隆过滤器中,以此来确定。缺点是存在误判的可能,但不存在漏判,即可能将正常邮件判为垃圾邮件。
风控
电子商务风险分类:
账户风险:包括账户被黑客盗用,恶意注册账号等几种情形。
买家风险:买家恶意下单占用库存进行不正当竞争;黄牛利用促销抢购低价商品;此外还有 良品拒收,欺诈退款以及常见于 B2B 交易的虚假询盘等。
卖家风险:不良卖家进行恶意欺诈的行为,例如货不对板,虚假发货,炒作信用等,此外还 有发布违禁商品、侵权产品等。
交易风险:信用卡盗刷,支付欺诈,洗钱套现等。
风控技术手段:
规则引擎

机器学习

系统高可用
可用性度量
业界通常用多少个9来衡量网站的可用性
网站年度可用性指标=(1-网站不可用时间/年度总时间)×100%
网站不可用时间(故障时间)=故障修复时间点-故障发现(报告)时间点
定性描述:
两个9是基本可用,年度停机时间小于88小时;
3个9较高可用, 年度停机时间小于9小时;
4个9是具有自动恢复能力的高可用,年度停机时间小于53分 钟;
5个9是极高可用性,年度停机时间小于5分钟。
由于可用性影响因素很多,对于网站 整体而言,达到4个9,乃至5个9的可用性,除了过硬的技术、大量的设备资金投入和工 程师的责任心,还要有个好运气。
故障分管理

故障处理流程与考核

提升架构高可用方案
解耦
高内聚、低耦合的组件设计原则
面向对象基本设计原则
面向对象设计模式
领域驱动设计建模
隔离
业务与子系统隔离
微服务与中台架构
生产者消费者隔离
虚拟机与容器隔离
异步
多线程编程
反应式编程
异步通信网络编程
事件驱动异步架构
备份
集群设计
数据库复制
CAP 原理

Failover(失效转移)
数据库主主失效转移
负载均衡失效转移
幂等
事务补偿
重试
熔断
限流
固定窗口
滑动窗口
令牌桶算法
漏桶算法
自适应限流
降级
异地多活
运维方案
自动化测试
自动化部署
预发布验证

代码版本控制
自动化发布

灰度发布

监控
用户行为日志收集
服务器性能监控
业务运行数据报告
监控管理
报警
自动控制
监控系统架构

当前行业内比较常用的是prometheus
评论