这是我参与「第五届青训营 」伴学笔记创作活动的第11天
课程概述
从攻击、防御两个视角,简要介绍前端范畴内常见的安全问题,包括 XSS、CSRF、SQL 注入、DOS 等。
XSS攻击
跨站脚本攻击指得是:恶意攻击者往Web页面里注入恶意Script代码,用户浏览这些网页时,就会执行其中的恶意代码,可对用户进行盗取cookie信息、会话劫持等各种攻击。
主要利用了盲目信任用户提交的内容
特点
- 通常难以从UI上感知(暗地执行脚本)
- 窃取用户信息(cookie/token)
- 绘制UI(例如弹窗),诱骗用户点击/填写表单
- 这种不涉及数据库,单从url上进行攻击
防御:
前端框架基本预防了,服务端的也有npm包,用户强制动态生成DOM、可以上传SVG图片需注意。对输入的数据进行严格校验。限制字符串长度。
CSRF 跨站伪造请求
特点
在用户不知情的前提下 利用用户权限(cookie) 构造指定HTTP请求,窃取或修改用户敏感信息
防御: csp策略
原理其实就是白名单机制,开发者明确告诉浏览器哪些资源可以加载并执行,我们只需要提供配置,其他的工作由浏览器来完成。通过 < meta > 标签开启
sql注入
将SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令
Dos和DDos
特点
- 耗时的同步操作
- 数据库写入
- sQL join
- 文件备份
- 循环执行逻辑
防御: https、数字签名、证书
参考资料
- 什么是分布式拒绝服务 (DDoS) 攻击?
- Safe DOM manipulation with the Sanitizer API
- Mitigate cross-site scripting (XSS) with a strict Content Security Policy (CSP)
- github.com
- SameSite 那些事 | 怡红院落
- Amazon.com: Web Application Security: Exploitation and Countermeasures for Modern Web Applications: