web安全初识 | 青训营笔记

186 阅读2分钟

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

f663051580d6d3178bd6ae9627efe5fb.png

web安全初识

web安全大抵可以从两个角度看待。1. hacker ---- 攻击 2. 开发者 ----防御

攻击

XSS

Cross-Site Scripting(XSS)

image.png

在可以提交表单的地方,开发者盲目信任用户提交的内容就会导致这样的安全问题。没有顾虑地直接将用户的提交内容从String转换为DOM。用户的提交内容可能是DOM的伪代码,那么就可能导致用户信息泄露,绘制UI诱骗用户点击/填写表单

Stored XSS

这种攻击是危害最大的,对全部用户可见

恶意脚本被存于数据库中,访问页面即可触发而被攻击

Reflected XSS

不涉及数据库,从URL上攻击

image.png

从URL上提供参数时,给予的参数可以是恶意的

DOM-based XSS Demo

完全在浏览器上完成的攻击

image.png

这种攻击与Reflected XSS相反

Mutation-based XSS

利用了浏览器渲染 DOM 的特性(独特优化)。不同的浏览器会有区别(按浏览器进行攻击)

Cross-site request forgery(CSRF)

在用户不知情的前提下利用用户权限(cookie)构造指定HTTP请求,窃取或修改用户敏感信息

image.png

SQL Inject

在请求的时候恶意注入SQL参数,服务器将参数转为可运行的SQL代码,攻击者即可获取数据库中其他数据

image.png

Denial of Service(DoS)

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

典型的有基于正则表达式的DoS

image.png

Distributed DoS(DDoS)

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

中间人攻击

image.png

防御

XSS

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

可以使用一些工具

image.png

Content Security Policy(CSP)

image.png

CSRF -- token

image.png

image.png

传输层 --- 防御中间人

使用 HTTPS 协议

HTTPS 协议具有可靠性,完整性,不可抵赖性

image.png