发表于: 2019-12-17 23:36:55
1 997
今天完成的事情:
1 前端网络安全
明天计划的事情:
1 整理双向绑定,响应式,异步更新DOM原理
遇到的问题:
1 暂无
收获:
Xss攻击
XSS:Cross-Site Scripting跨站脚本攻击的简称(为和CSS区分,把攻击第一个字母改成了X,于是叫做XSS)
是一种代码注入攻击,攻击者通过在目标网站上注入恶意脚本,使之在用户的浏览器上运行。利用这些恶意脚本,攻击者可获取用户的敏感信息如 Cookie、SessionID 等,进而危害数据安全
XSS本质:恶意代码未经过滤,与网站正常的代码混在一起;浏览器无法分辨哪些脚本是可信的,导致恶意脚本被执行,而由于直接在用户的终端执行,恶意代码能够直接获取用户的信息,或者利用这些信息冒充用户向网站发起攻击者定义的请求。
Xss类型
存储型 XSS:常见于带有用户保存数据的网站功能,如论坛发帖、商品评论、用户私信等

反射型XSS:常见于通过 URL传递参数的功能,如网站搜索、跳转等
反射型XSS / 存储型XSS区别:存储型XSS的恶意代码存在数据库里,反射型XSS的恶意代码存在URL里,由于需要用户主动打开恶意的URL才能生效,攻击者往往会结合多种手段诱导用户点击

DOM型XSS:他跟前两种的区别是,取出和执行恶意代码由浏览器端完成,属于前端JS自身的安全漏洞,而其他两种XSS都属于服务端的安全漏洞

防止Xss攻击
XSSer检测和利用XSS漏洞的自动Web测试框架工具
XSS攻击:通过前面的介绍可得,XSS攻击有两大要素如下
1攻击者提交恶意代码(输入过滤并非完全可靠,我们就要通过“防止浏览器执行恶意代码”来防范 XSS)
2浏览器执行恶意代码( 防止 HTML 中出现注入。防止 JavaScript 执行时,执行恶意代码),如下
预防存储型和反射型XSS攻击:他两都是在服务端取出恶意代码后,插入到响应HTML里的,攻击者刻意编写的“数据”被内嵌到“代码”中,被浏览器所执行。预防有两种常见做法:改成纯前端渲染,把代码和数据分隔开。对HTML做充分转义
![]()

预防DOM型XSS攻击:实际上就是网站前端JS代码本身不够严谨,把不可信的数据当作代码执行了
如用Vue/React 技术栈,并且不使用 v-html/dangerouslySetInnerHTML,就在渲染阶段避免innerHTML、outerHTML的XSS隐患

CSP:Content Security Policy严格的 CSP 在 XSS 的防范中可以起到以下的作用

输入内容长度控制:对于不受信任的输入,都限定一个合理的长度。虽然无法完全防止XSS发生,但可以增加 XSS 攻击的难度
其他安全措施:HTTP-only Cookie: 禁止JS读取某些敏感 Cookie,攻击者完成XSS注入后也无法窃取此Cookie
验证码:防止脚本冒充用户提交危险操作
评论