这是我参与「第五届青训营 」笔记创作活动的第14天
一、本堂课重点内容:
- XSS 的防御
- 防御 CSRF 的正确姿势
- 防御 Injection
- 防御DOS
- 防御中间人
二、详细知识点介绍:
- 1.XSS的防御
首先要特别注意的就是:
- 1.永远不要信任用户的提交内容
- 2.不要将用户提交内容直接转换为DOM
XSS--现场工具
前端:主流框架默认防御;google-closure-library
服务端:DOMPurify
XSS--耗子尾汁
- !!!【用户需求】不讲武德,必须动态生成DOM
- !!!string-DOM
- !!!上传SVG
- !!!Blod动态生成script
- !!!自定义样式
- 2.防御 CSRF 的正确姿势
除了Origin+Referrer,是否有其他判断【请求来自于合法来源】的方式 ?那答案肯定是有的,具体的内容如下:
第一种:
第二种:
那为了解决上面这些问题,那就提出来SameSite Cookie
第一Cookie是可以的,但是第三方的Cookie是不行的,因为SameSite Cookie限制的是Cookie domain和页面域名 ,
但是同时又有问题:依赖Cookie的第三方服务怎么办?内嵌一个X站播放器,识别不了用户登录态,发不了弹幕,这该怎么办呢?但是SameSite Cookie对于这些方面都是考虑到了的 ,比如下方图片就可以解释
防御CSRF的正确姿势
- 3.防御 Injection
- 4.防御DOS
- 1.Code Review(X/(ab*)+/)
- 2.代码扫描+正则性能测试
- 3.X 用户提供的使用正则
- 5.防御中间人
HTTP的过程(简单介绍):