这是我参与「第四届青训营 」笔记创作活动的第5天
Web 开发的安全之旅
今天的前端课程是我以前都没有怎么接触过的东西,网络安全很重要,在前端方面的占比也不低,听老师讲课,记了一些笔记
-
攻击篇
-
- XSS
- CSRF
- SQL 注入
- SSRF
- DoS
- 中间人攻击
-
防御篇
-
- SameSite Cookie
- HTTPS
- HSTS
- CSP
- SRI
攻击篇
XSS跨站脚本攻击
- 开发者盲目信任用户提交内容
- 直接将用户输入渲染到DOM上
如果攻击者使用输入框,输入了一些获取用户信息的javascript代码,获取到cookie,token。或者写一个弹窗,跳转到病毒网站 dome
读写数据没有对用户提交的内容进行过滤,
CSRF 跨站伪造请求
- 在用户不之情情况下
- 利用用户权限(cookie)
- 构造指定 HTTP 请求,修改窃取铭感信息
常试用在get请求中,
demo
SQL 注入
如果有一个http请求,请求的参数是一个sql语句, 然后发送到服务器, 服务器接收并处理这段请求, 容易被获取到一些明敏感数据,可能导致数据被修改和删除
demo
还有其他的注入攻击例如cli,OS command,SSRF等等
Denial of Servie(DOS)
通过某种方式(构造特定请求),导致服务器资源被显著消耗,来不及响应更多请求,导致请求被挤压,进而雪崩效应 学过一些计算机网络的东西,当请求过多堆积时,网络的效能不是线性减低的,而是到达一定程度就会断崖式崩塌。
demo: 正则表达式的贪婪模式
中间人攻击
顾名思义中间人攻击意思是,在服务器和用户之间,有着中间人的存在,用户和服务器的通信看似是直达的,但中间有这层影响,而这中间人又可以随意地更改用户的发送和浏览器的发返回,容易造成信息的问题
- 明文传输
- 信息篡改不可知
- 对方身份未验证
防御篇
XSS
- 永远不要信任用户提交的内容
- 不要将用户提供的内容直接转换为DOM
在前端,当前的一些主流框架都避免了这类事情的发生。服务器端中也有 DOMPurif 进行防御。
待跟新......