xss

反射型: 发出请求时,XSS代码出现在URL中,作为输入提交到服务器端,服务器端解析后响应,XSS随响应内容一起返回给浏览器,最后浏览器解析执行XSS代码,这个过程就像一次发射,所以叫反射型XSS。

存储型: 存储型XSS和反射型的XSS差别就在于,存储型的XSS提交的代码会存储在服务器端(数据库,内存,文件系统等),下次请求目标页面时不用再提交XSS代码。
XSS的防御措施

  1. 对用户输入的数据进行转义和编码
  2. Content-Security-Policy 使用同源策略进行防御

    csrf cross-site-request-forgery 跨站请求伪造

    也被称为 One Click Attack
    点击跳转进行拦截并提示用户您即将离开本网站

防御措施

  1. 每次请求都再请求体内添加随机值
  2. 检查refer 如果不是本域的请求,则直接拒绝

iframe

如果引入的第三方iframe被篡改

防御措施
设置sandbox值对iframe权限进行限制

1
<iframe sandbox src="..."> ... </iframe>

错误的浏览器内容推断

有的攻击脚本可以将js脚本伪装成图片提交给服务器
当服务器渲染该图片时会进行错误的内容推断 执行攻击脚本
防御措施
禁用浏览器内容推断

不安全的第三方依赖包

https降级 SSL Stripping

用户输入网址没有输入https 直接输入www.baidu.com这样 然后攻击者拦截https跳转,强制用http进行通信并盗取信息

防御措施
HTTP Strict Transport Security
强制使用https进行通信
新版chrome http网站会被标记为不安全

本地存储数据泄露

静态资源完整性校验

cdn被攻击劫持
防御措施
每个资源文件都可以有一个SRI值
浏览器解析时会进行匹配

https

分为对称加密和非对称加密
核心是用非对称加密传输对称密钥

非对称加密将密钥分为公钥和私钥,公钥可以公开,私钥需要保密,客户端公钥加密的数据,服务端可以通过私钥来解密

  1. 客户端发送支持的加密协议和版本,SSL,TLS
  2. 服务端选择一个加密协议,服务端返回证书 证书中有公钥
  3. 客户端使用根证书验证证书合法性
  4. 客户端生成对称密钥,通过证书中的公钥加密发送给服务器
  5. 服务器用私钥解密 获取对称密钥 使用对称密钥加密数据
  6. 客户端解密数据

同源策略

协议相同
域名相同
端口相同

两个网页一级域名相同,只是二级域名不同 可以通过设置document.domain共享cookie