这是我来参加[第五届青训营]笔记创作活动的第十一天。
今天跟着刘宇晨老师学习Web开发安全。
Web安全一览:
老师从两个角度介绍了Web安全-攻击或者防御
一、攻击篇
Cross-Site Scripting(XSS)
XSS原理:
XSS的一些特点:
1、通过难以以UI上感知(暗地执行脚本)
2、窃取用户信息(cookie/token)
3、绘制UI(例如弹窗),诱骗用户点击/填写表单
Stored XSS
1、恶意脚背被存在数据库中
2、访问页面 -> 读数据 === 被攻击
3、危害最大,对全部用户可见
Reflected XSS
1、不涉及数据库方面
2、从URL上去攻击
DOM-based XSS
1、不需要服务器的参与
2、恶意攻击的发起+执行,全在浏览器完成
Reflected和DOM-based区别:注入方式不同
Mutation-based XSS
1、利用了浏览器渲染DOM的特性(独特优化)
2、不同浏览器,会有区别(按浏览器进行攻击)
Cross-site reques forgery(CSRF)
1、在用户不知情的前提下
2、利用用户权限(cookie)
3、构造指定HTTP请求,窃取或修改用户敏感信息
CSRF demo
Injection
1、SQL injection
2、请求SQL参数
3、获取其他数据、修改数据、删除数据
防御篇
XSS
1、永远不信任用户的提交内容
2、不要将用户提交内容直接转换成DOM
XSS现成工具
前端:Vue、React框架;Google-closure-library。服务端:DOMPurify
CSP:哪些源被认为是安全的;来自安全源的脚本可以执行,否则报错。
总结:通过本节课,了解到web安全的攻防端,也明白做好防御的重要性。