架构师训练营第十一周总结
安全架构
XSS 攻击
XSS 攻击者一般都是通过在请求中嵌入恶意脚本达到攻击目的
防御手段:
消毒:对某些 HTML 危险字符转义,就可以防止大部分攻击
SQL 注入攻击
获取数据库表结构信息的手段:开源 错误回显 盲注
防御手段:
消毒:请求参数消毒是一种比较简单粗暴又有效的手段。通过正则匹配,过滤请求数据中可能注入的 SQL 文。
SQL 预编译参数绑定
CSRF 攻击
攻击者通过用户不知情的情况下让用户对服务器发送来自攻击者的请求
防御手段:
表单 Token:在页面表单中增加一个随机数 Token,每次请求的 Token 都不相同,请求提交后检查 Token 的值是否正确以确定请求提交者是否合法。
验证码:即请求提交时,需要用户输入验证码,以避免在用户不知情的情况下被攻击者伪造请求。
Referer check:HTTP 请求头的 referer 域中记录着请求来源,可通过检查请求来源,验证其是否合法。
其他需要关注的攻击和漏洞
Error Code:也称作错误回显
HTML 注释
文件上传:最有效的防御手段是设置上传文件白名单,只允许上传可靠的文件类型。
路径遍历:攻击者在请求的 URL 中使用相对路径,遍历系统未开放的目录和文件。
开源 Web 应用防火墙 ModSecurity
网站安全漏洞扫描
信息加密技术及密钥安全管理
信息加密技术可分为三类:单项散列加密,对称加密,非对称加密
单向散列加密
MD5
对称加密
非对称加密
RSA
反垃圾邮件:
贝叶斯分类算法
布隆过滤器黑名单
电子商务风险控制
账户风险
买家风险
卖家风险
交易风险
风控的手段包括自动和人工两种方式。
机器自动风控的技术手段主要有规则引擎和机器学习
规则引擎
当交易的某些指标满足一定条件的时候,就会被认为具有高风险的欺诈可能性。
机器学习
规则引擎虽然技术简单,但是随着规则的逐渐增加,出现规则冲突,难以维护等情况,而且规则越多,性能也越差。大型互联网应用更倾向于使用机器学习模型进行风控
高可用系统的运维
发布
自动化测试
自动化部署
持续部署三步走
持续集成
持续交付
持续部署
预发布验证
预发布服务器是一种特殊用途的服务器,它和线上的正式服务器唯一的不同就是没有配置在负载均衡服务器上,外部用户无法访问。
代码版本控制
主干开发、分支发布
分支开发,主干发布
自动化发布
灰度发布
网站运行监控
监控数据采集
用户行为日志收集
服务器性能监控
业务运行数据报告
监控管理
报警
自动控制:自动失效转移、自动扩容、自动限流
高可用的价值观
保持简单,使问题易于发现,快速解决。
目标明确,解决特定环境下的具体问题。
价值回归,成本收益要合理。
评论