WEB安全课程总结 | 青训营笔记

117 阅读2分钟

二:前端青训营WEB安全课程总结

这是我参与「第四届青训营 」笔记创作活动的的第三天

[TOC]

攻击角度看web安全

XSS

	Cross-Site Scripting(XSS):跨站脚本攻击

可能造成的原因 String -> DOM document.write element.innerHTML = result SSR

特点

	难以在UI上感知
	窃取用户如cookie/token等信息
	绘制UI

攻击类型

  • Stored XSS

      恶意脚本存储在数据库中
      访问页面 数据库返回数据渲染 被攻击
      危害大 对所有的用户可见
    
  • Reflected XSS

      不涉及数据库
      从URL进行攻击
    
  • DOM-based XSS

      不需要服务器参与
      攻击的发起和执行在浏览器完成
    
  • Mutation-based XSS

      利用浏览器渲染的特性
      对于不同的浏览器会有不同的效果
    

CSRF

Cross-site request forgery
在用户不知情的情况下利用用户的权限进行操作

Injection

注入的方式

  • SQL Injection
  • CLI
  • OS command
  • Server-Side Request Forgery(SSRF) 服务器端伪造请求 严格意义上,SSRF不是injection 但是原理是相似的

SQL Injection

SQL参数中进行恶意的注入
运行SQL code
进行非法操作

DoS

通过某种方式(构造特定请求) 导致服务器资源被显著消耗 来不及响应更多请求,导致请求挤压,进而雪崩效应

ReDoS

    基于正则表达式的DoS攻击
    利用正则表达式回溯
    会导致响应事件大大增长,接口的吞吐量降低

DDOS

短时间内,来自大量僵尸设备的请求流量,服务器不能及时完成全部请求,导致请求堆积,进而雪崩效应,无法响应新请求。

攻击特点

    直接访问IP
    任意API
    消耗大量带宽(耗尽)

中间人攻击

在服务器和浏览器之间增加一个中间人,进行双向的交互

攻击发生的原因

	明文传输
    信息篡改不可知
    对方身份未验证

防御角度看web安全

XSS

永远不信任用户的提交内容 不要将用户提交内容直接转换成D0M

防御工具

	在主流的前端框架默认防御XSS攻击
	Node:DOMPurify

SOP(同源策略)

双方的协议,域名和端口号必须相同

CSP

哪些源(域名)被认为是安全的
来自安全源的脚本可以执行,否则直接抛错
对eval+inline script直接拒绝

CSRF的防御

可以利用token防御

服务器向浏览器发送token
在服务器要求浏览器请求携带token
验证用户的token发送数据

HTTPS

在传输的时候传输加密信息和加密信息的hash值
如果两者相同,可以确保信息没有被篡改