这是我参与「第五届青训营 」笔记创作活动的第14天
今天的视频课 [Web开发安全]是以网络时代下,因Web 安全随处可见并且危害极大,Web 安全问题也越来越受到重视。基于此背景,从安全问题中「攻击者」的角色出发,讲解目前存在哪些技术手段将危害到 Web 安全,并从「防御者」角色的视角,剖析不同攻击手段的技术细节,帮助大家逐个击破安全漏洞,更好地维护 Web 安全。
我对老师今天讲解的知识进行了整理和概括,具体内容如下:
1.web安全分析
web网络安全一直是一个非常重要的问题,安全问题很常见,会危害用户,公司,程序员等等。我们研究web安全问题主要从两个角度分析。
- 假如你是一个hacker--攻击
- 假如你是一个开发者--防御
2. 攻击篇
web攻击方式多种多样,往往会有意想不到的攻击出现,各种问题层出不穷,下面我介绍一些常见的攻击手段:
(1)Cross-Site Scripting(XSS类)跨站脚本攻击,主要有通常难以从UI上感知、窃取用户信息、绘制UI诱骗用户点击等等特点。下面是一个此类攻击实例:
XSS类攻击里面也还有许多子类,我列举了几个常用项:
- Stored XSS(存储型XSS攻击),具体实现如下:
- Reflected XSS(反射型XSS攻击),它不涉及数据库,是从URL上攻击,具体实现如下:
- DOM-based XSS(基于DOM型XSS攻击),它不需要服务器的参与,全在浏览器完成,具体实现如下:
- Mutation-based XSS(基于Mutation型攻击),它利用了浏览器渲染DOM的特性,按浏览器进行攻击,具体实现如下:
(2)Cross-site request forgery(CSRF)跨站伪造请求,它是在用户不知情的前提下,利用用户权限伪造指定HTTP请求,窃取或修改用户敏感信息。CSRF的具体实现如下:
此外还有jnjection注入攻击,Denial of Service服务拒绝,Distributed DOS等等攻击手段,在此我不多赘述了,感兴趣的同学下面可以自己学习一下。
3.防御篇
了解了web的攻击手段,我们就要想办法解决这些问题,采取防御预防这些攻击。我收集了几种常用的防御方法如下:
(1) XSS方法,它就是永远不要信任用户的提交内容,不将用户内容直接转换成DOM。它使用非常方便,因为有现成的工具,前端主流框架默认防御XSS,而服务端有DOMPurify可以使用。
(2)Content Security Policy(CSP),它是考虑哪些源是安全的,来自安全源的脚本可以执行,否则直接抛错。
(3)CSRF的防御,它的防御措施如下:
还有其他的防御DOs的Logical Dos、Regex Dos方法等等,下去感兴趣同学自行了解。