大型网站技术架构读书笔记--安全性

网站应用攻击和防御

XSS攻击

XSS(Cross Site Script)即跨站点脚本攻击,是指黑客通过篡改网页注入恶意HTML,在用户浏览网页时,控制用户浏览器进行恶意操作的一种攻击方式。

  1. 反射型XSS
    攻击者诱使用户点击一个嵌入恶意脚本的链接,然后通过脚本进行攻击。
  2. 持久型XSS
    黑客提交含有恶意脚本的请求保存在被攻击Web站点上,当用户访问时,脚本生效,攻击生效。

主要解决方式有消毒(转义特殊字符,匹配文本等)、HttpOnly(禁止页面JS访问带有该属性的Cookie)

注入攻击

主要有SQL注入和OS注入,即通过携带一些恶意SQL脚本或者OS命令等对设备进行攻击。

防止注入攻击主要方式有消毒(同上,匹配可能出现的恶意SQL),参数绑定

CSRF攻击

CSRF(Cross Site Request Forgery,跨站点请求伪造),攻击者通过跨站请求,以合法用户身份进行非法操作。

CSRF主要利用跨站请求,例如用户登录一个受信任服务器,然后访问了攻击者服务器,攻击者服务器给用户返回了包含访问受信任服务器请求的响应消息,然后用户浏览器在不知情情况下执行了该请求,导致被攻击。

CSRF的主要防御手段有:
表单Token: 随机生成一个伪造请求Get不到的页面访问Token,服务器验证该Token。
验证码: 在发送请求时输入验证码。
Referer check: Http请求头Referer中记录请求来源,检查请求来源,验证其是否合法。(图片防盗链)

其他

Error Code: 系统运行出错直接将堆栈信息打印在页面上可能给黑客可乘之机。
HTML注释: 页面上包含的HTML注释。
文件上传: 上传文件可执行的话可能会导致严重后果,所以需要设置上传文件类型限制,修改文件名,使用专门的存储手段等。
路径遍历: 请求URL中的相对路径,遍历系统未开放的目录和文件。

Web应用防火墙
网站安全漏洞扫描

根据内置规则,构造具有攻击性的URL请求,模拟黑客攻击,以此发现网站安全漏洞。

信息加密技术及安全秘钥管理

为了保护网站敏感数据,应用需要对这些信息加密,信息加密技术分为三类:单向散列加密、对称加密和非对称加密。

  1. 单向散列加密是指通过对不同输入长度信息进行计算,得到固定长度输出,并且此过程不可逆。通常为了加强单向散列计算安全性,还会给散列算法加点salt,salt相当于加密的密钥。常见单向散列算发有MD5,SHA等。
  2. 对称加密是指加密和解密使用同一个密钥(或可以相互推算)。对称加密通常用在信息需要安全交换或存储,例如Cookie加密、通信加密等。常用算法有DES、RC等。
  3. 非对称加密是指加密和解密使用的密钥不是同一密钥,对外界公开的成为公钥,另一个只有所有者知道,被称作私钥。由公钥加密的消息只能由私钥解开,反之亦然。费对称加密通常用在信息安全传输、数字加密等场合。常用算法有RSA等。

信息过滤和反垃圾

  1. 文本敏感词过滤: 字典树以及双数组字典树算法,多重Hash表,文本降噪等
  2. 分类算法: 贝叶斯算法、TAN算法、ARCS算法等。提取特征值概率,按概率判断分类。
  3. 黑名单: Hash表(数量多时占用空间大,检索慢),布隆过滤器等。

电子商务风险控制

规则引擎(自定义风险规则)和统计模型(机器学习)