架构师训练营第十一周作业一:高可用
影响系统高可用的因素
系统受到的安全攻击
XSS攻击: 攻击者通过将攻击 URL 发送至用户、或者攻击网站的服务器、或劫持请求,将攻击URL埋在正常的响应中,尤其用户在登录状态下,执行攻击URL,对用户数据进行窃取或对服务器执行非法操作。
SQL注入攻击:攻击者尝试构造危险的 SQL 语句,填入网站表单中,提到至服务器后,若服务器未进行安全处理,则会对数据库进行危险操作,如删库。
CSRF跨站点请求伪造:用户登录网站、未退出。再登录B站点时,可以在B站点上嵌入A站点的访问请求(若A站点存在GET请求更新数据的方式),便可以攻击A站点,或者通过iframe嵌入的方式,攻击A。
硬件故障:磁盘、CPU等硬件故障。
软件BUG。
发布操作失误。软件在发布过程中,运维人员的失误操作导致发布异常,进而导致系统故障。
并发压力过高。网站瞬间压力过大。
网络攻击。攻击者大量发送无用的请求至服务器,占用系统服务器资源、带宽、导致网络拥塞,正常用户无法请求。
外部灾害。火灾、光缆切断等。
保证高可用的措施
请求消毒:针对用户提交至服务器端的请求,过滤处理 < 之类的危险字符,解决XSS、SQL注入攻击。也可以采用 PrepareStatement 来解决SQL注入攻击。
Refferer 验证,token验证等机制来解决 CSRF 攻击。
负载均衡、故障转移、异地多活,用来解决 硬件故障、及单机房灾害性问题。
单元测试、人工测试、安全工具扫描、自动化测试解决 软件BUG、性能缺陷等。
自动化发布:解决因人为失误导致的故障。
限流、熔断:保证在系统并发压力大、网络攻击的情况下,还能正常提供服务。
评论