「第四届青训营 -前端基础场」笔记创作活动的第5篇笔记(一切内容仅供参考)
两个角度看web安全
-
攻击篇
假如你是一个hacker–攻击 Cross-Site Scripting(XSS) XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。
XSS主要利用了盲目信用用户的提交内容
XSS的一些特点
- 通常难以从UI上感知(暗地执行脚本)
- 窃取用户信息(cookie/token)
- 绘制UI(例如弹窗),诱骗用户点击/填写表单
XSS demo
可以直接提交恶意脚本
//提交的时候
fectch("submit",{
bady:JSON.stringfy({
id:"1",
content:`<srcipt>alert('XSS');</script>`
})
})
ctx.body=`<div><srcipt>alert('XSS');</script></div>`
Stored XSS
- 恶意脚本被存储在数据库里面
- 访问页面 → 读数据 = 被攻击
- 危害最大,对全部用户可见
Reflected XSS
- 不涉及数据库
- 从URL上攻击
Reflected XSS demo
Cross-site request forgery(CSRF)
- 在用户不知情的前提下
- 利用用户权限(cookie)
- 构造指定HTTP请求,窃取或修改用户敏感信息
CSRF----beyond GET
Injection
demo
正则表达式-贪婪模式
ReDos:基于正则表达式的Dos
最后
总结: 安全无小事 使用的依赖(npm package,设置是nodejs)可能会成为最薄弱的一环 left-pad事件 eslint-scope事件 event-stream事件 保持学习心态