这是我参与「第五届青训营 」伴学笔记创作活动的第十天。
本课堂重点内容:
- 攻击篇
- 防御篇
安全问题是非常常见的,会危害用户、公司以及程序员。那么我们可以从两个角度看web安全:
- hacker--攻击角度
- 开发者--防御角度
攻击篇
XSS
之前学计算机网络相关,接触过XSS的知识。XSS(Cross-site Scripting),通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。(来源百度百科)
XSS的特点:
- 通常难以从UI感知(暗地执行脚本)
- 窃取用户信息
- 绘制UI(例如弹窗),诱骗用户点击/填写表单
XSS类型包括:存储型XSS、反射型XSS、DOM的XSS
CSRF
- 在用户不知情的前提下
- 利用用户权限
- 构造指定的HTTP请求,窃取或修改用户敏感信息
防御篇
针对XSS,就是永远不信任用户的提交内容,并且不要将用户提交内容直接转换成DOM。
前端的主流框架都默认防御XSS,服务端有DomPurity
CSRF的防御:
SameSite,依赖Cookie的第三方服务器,内嵌一个X站播放器,识别不了用户登录状态,发不了弹幕。
SameSite VS CORS: