Week_11 总结

用户头像
golangboy
关注
发布于: 2020 年 12 月 07 日

安全架构

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



用户头像

golangboy

关注

还未添加个人签名 2018.09.18 加入

还未添加个人简介

评论

发布
暂无评论
Week_11 总结