这是我参与「第五届青训营 」伴学笔记创作活动的第11天。
今天学习的内容是关于web开发的安全,课程从攻击、防御两个视角给我们介绍了前端范畴常见的安全问题,我将课程的重点内容总结为以下几点:
1.XSS原理
XSS 的原理是恶意攻击者往 Web 页面里插入恶意可执行网页脚本代码,当用户浏览该页之时,嵌入其中 Web 里面的脚本代码会被执行,从而可以达到攻击者盗取用户信息或其他侵犯用户安全隐私的目的。
2.XSS的一些特点
- 通常难以从UI上感知(暗地执行脚本)
- 窃取用户信息(cookie/token)
- 绘制UI(例如弹窗),诱骗用户点击/填写表单
3.如何防御XSS攻击
(1) CSP
CSP 本质上就是建立白名单,开发者明确告诉浏览器哪些外部资源可以加载和执行。我们只需要配置规则,如何拦截是由浏览器自己实现的。我们可以通过这种方式来尽量减少 XSS 攻击。
通常可以通过两种方式来开启 CSP:
·设置 HTTP Header 中的 Content-Security-Policy
·设置 meta 标签的方式
(2) 转义字符
用户的输入永远不可信任的,最普遍的做法就是转义输入输出的内容,对于引号、尖括号、斜杠进行转义。
(3) HttpOnly Cookie
这是预防XSS攻击窃取用户cookie最有效的防御手段。Web应用程序在设置cookie时,将其属性设为HttpOnly,就可以避免该网页的cookie被客户端恶意JavaScript窃取,保护用户cookie信息。
4.前端监控的意义
首先,通过前端监控可以提升用户体验;其次,前端监控可以更快的发现发现异常、定位异常、解决异常;再者,前端监控还能了解业务数据,指导产品升级——数据驱动的思想。