Web 开发的安全之旅|青训营笔记

126 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第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: