11 周总结:安全,高可用
安全架构
XSS攻击
攻击者推送含有恶意脚本的url给用户,用户打开url就会被执行恶意脚本。
XSS攻击防御手段
对某些HTML危险字符进行过滤,消毒和转义处理。
SQL注入攻击
攻击者发送含有恶意sql命令的http请求,如果在数据库执行这条sql,会导致数据库被破坏。
获取数据库表结构信息的手段:开源,错误回显,盲注。
注入攻击防御手段
通过正则匹配,对请求参数消毒,过滤请求数据中可能注入的sql。
使用预编译手段,绑定参数是最好的防SQL注入的方法。
CSRF攻击
CSRF攻击防御手段
随机数Token:在页面表单中增加一个随机数Token,每次请求的Token都不相同,请求提交后检查Token的值是否正确以确定请求提交者是否合法。
验证码:在请求提交时,需要用户输入验证码,以避免在用户不知情的情况下被攻击者伪造请求。但是输入验证码时一个糟糕的用户体验,所以必要的时候才使用。
Referer check: Http 请求头的referer 域中记录着请求来源,可以通过检查请求来源,验证其是否合法。但是该方法有一定的局限性,referer 也并不一定总能得到。
其他需要关注的攻击和漏洞: Error Code, HTML 注释,文件上传, 路径遍历。
Web应用防火墙
开源Web应用防火墙ModSecurity
ModSecurity 采用处理逻辑和规则集合分离的架构模式。处理逻辑负责请求和响应的拦截过滤,规则加载执行功能。而规则集合则负责对具体的攻击的规则定义,模式识别,防御策略等功能。处理逻辑比较稳定,规则集合需要不断针对对漏洞进行升级,这是一种可扩展的架构设计。
网站安全漏洞扫描
信息加密技术及密钥安全管理
单项散列加密
对称加密
非对称加密
密钥安全管理与加解密服务系统架构
反垃圾邮件
贝叶斯分类算法
根据已分类的样本信息获得一组特定值的概率(如"茶叶"这个词出现在垃圾邮件中的概率和非垃圾邮件中的概率)就得到分类模型,然后对待处理信息提取特征值,结合分类模型,判断其分类。
布隆过滤器黑名单
电子商务风险控制
交易安全是电子商务网站的底线。
电子商务的风险大致可以分为以下几种:账户风险,买家风险,卖家风险,交易风险。
规则引擎
当交易的某些指标满足一定条件的时候,就会被认为具有高风险的欺诈可能性。
比如:用户来自欺诈高发地区,交易金额超过某个数值。
大型网站在运营的过程中,结合业界的最新发现,会总结出数以千计的高风险交易规则。
机器学习
规则引擎虽然技术简单,但是随着规则的逐渐增加,会出现规则冲突,难以维护的情况。
而且规则越多,性能也越差。大型互联网公司更倾向于使用机器学习模型进行风控。
高可用架构
可用性指标
两个9是基本可用,年度停机时间小于88小时;3个9较高可用,年度停机时间小于9小时;4个9是具有自动恢复能力的高可用,年度停机时间小于53分钟(qq的可用性是4个9);5个9是极高可用性,年度停机时间小于5分钟。
故障分管理
故障处理流程及考核
引起故障的原因:
硬件故障
软件bug
系统发布
并发压力
网络攻击
外部灾害
高可用系统的架构的设计方式:
解耦
隔离
异步
备份
Failover(失效转移
幂等
事务补偿
重试
熔断
限流
降级
异地多活
高可用系统的运维
发布
自动化测试:手工测试和自动化测试总体成本
自动化部署
持续部署三步走:持续集成,持续交付,持续部署。
代码版本控制
自动化发布
灰度发布
网站运行监控
监控数据采集
用户行为日志收集
服务器性能监控
业务运行数据报告
监控管理
报警
自动控制
自动扩容
自动限流
监控系统架构
高可用的价值观
保持简单,使问题易于发现,快速解决。
目标明确,解决特定环境下的具体问题。
价值回归,成本收益要合理。
评论