大型网站技术架构(四):安全与稳定

安全

一、Web攻击手段

Web攻击手段 原理 防范
XSS攻击 在输入框里输入脚本程序,恶意攻击用户 对用户输入的数据进行HTML转义处理
CRSF攻击 用户C登录了受信任站点A,在本地产生Cookie;用户C在没有登出(清除站点A的cookie)站点A的情况下,访问恶意站点B;恶意站点B获取cookie,访问站点A,以用户C的身份进行操作 将cookie设置为HttpOnly;增加token;通过refer识别
SQL注入攻击 把SQL命令伪装成正常的HTTP请求参数,传递到服务器,欺骗服务器最终执行恶意的SQL命令 使用预编译语句;使用ORM框架;避免密码明文存放;处理好相应异常
文件上传漏洞 上传可执行的文件或脚本,通过脚本获得服务器上相应的权利 对上传的文件类型进行白名单校验,限制上传文件的大小,对上传的文件进行重命名
DDos攻击 借助公共网络,将数量庞大的计算机设备联合起来作为攻击平台,对一个或多个目标进行攻击,从而达到瘫痪目标主机的目的

二、安全算法

类型 内容
数字摘要 MD5,SHA,Hash算法
对称加密算法 DES算法,3DES算法,AES算法
非对称加密算法 RSA

通过非对称加密技术与数字摘要技术,可以进行签名认证。

常见的数字签名算法包括MD5withRSA、SHA1withRSA等。

三、认证

认证 原理
摘要认证 针对每次请求,将请求参数进行排序,再将参数名称和值经过一定的策略组织起来,加上一个密钥secret,通过约定的摘要算法生成数字摘要,传递给服务端
签名认证 针对每次请求,将请求参数进行排序,再将参数名称和值经过一定的策略组织起来,通过约定的摘要算法生成数字摘要,使用客户端私钥对数字摘要进行加密,将加密的密文传递给服务端

四、协议

协议 原理
HTTPS 在HTTP协议与TCP协议之间增加一层安全层,所有请求和响应数据在经过网络传输之前,都会进行加密,然后再进行传输
OAuth 对第三方软件厂商(LSV)进行授权,使用第三方软件厂商能够使用平台上的部分数据,对用户提供服务

稳定

一、在线日志分析

日志中包含了程序在遇到异常情况所包含的详细信息,通过下列信息参数,可以知道相应的程序信息。

信息参数 作用
异常堆栈 定位到产生问题的程序bug的行
访问IP和请求URL参数 排查是否遭到攻击和攻击的形式
应用的响应时间、垃圾回收,系统load 判断系统负载,是否需要增加机器
线程dump 判断是否死锁及线程阻塞的原因
应用的GC日志 减少GC次数和stop the world时间,优化应用响应时间

二、集群监控

监控指标:load,CPU利用率,磁盘剩余空间,网络traffic,磁盘I/O,内存使用,每秒查询数(qps),请求响应时间(rt),数据库每秒处理的select语句的数量(select/ps),update/ps,delete/ps,GC。

心跳检测:ping

三、流量控制

流量控制措施:

  • 对系统的总并发请求数进行限制
  • 限制单位时间内的请求次数
  • 通过白名单机制来限制每一个接入系统调用的频率
  • 通过单机内存队列来进行有限的等待

四、性能优化

性能优化措施:

(1)前端性能优化

  • 减少页面的HTTP请求数量
  • 使用CDN网络
  • 使用压缩

(2)java程序优化

  • 单例
  • Future模式
  • 使用线程池
  • 选择就绪
  • 减少上下文切换
  • 降低锁竞争

(3)压缩
(4)结果缓存
(5)数据库查询优化
(6)GC优化
(7)硬件提升

你可能感兴趣的:(学习笔记,大型网站技术架构,技术架构,安全)