Web开发安全-攻击篇|青训营笔记

115 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 13 天

Web 开发安全

在网络时代下,Web 安全随处可见并且危害极大, 安全问题也越来越受到重视。安全的问题很常见,会危害用户、公司、程序员。基于此背景,这篇笔记将从安全问题中「攻击者」的角色出发,讲解目前存在哪些技术手段将危害到 Web 安全。

** XSS 跨站脚本攻击 ** Cross -Site Scripting(XSS) 例如恶意脚本的注人,XSS利用的第一是开发者盲目信任用户的提交的内容,以及前端工程师直接把用户内容转化成DOM。

XSS的特点

  • 通常难以从UI上感知(因为是暗地执行脚本)
  • 窃取用户信息(cookie/token)
  • 绘制UI(例如弹窗),诱骗用户点击/填写表单

Store XSS 存储型的XSS攻击

  • 恶意脚本会被存储到数据库中
  • 危害最大,对全部用户可见
  • 访问页面 ->读数据=被攻击

Reflected XSS 反射性的XSS攻击

  • 不涉及数据库
  • 从URL上攻击

DOM-based XSS 基于DOM的XSS攻击

  • 不需要服务器的参与
  • 恶意攻击的发起+执行,全在浏览器中完成

基于DOM的攻击和反射性攻击的区别是完成注入脚本不同,基于DOM的注入是在浏览器上,反射性是在服务器端

Mutation -based XSSS

  • 利用了浏览器渲染DOM的特性(独特优化)
  • 不同浏览器,会有区别(按浏览器进行攻击)

Cross-site request forgery(CSRF)跨站伪造请求

  • 在用户不知情的前提下
  • 利用用户权限(cookie)
  • 构造指定的HTTP请求,从而窃取或者修改用户敏感信息

最常见的是GET请求方式

注入攻击

SQL Injection 请求:SQL参数的恶意注入 Server: 参数->SQL; 运行SQL code 获取其他的信息:修改数据,删除数据

注入不止于SQL

  • CLI
  • OS command
  • Server-Side Request Forgery(SSRF)服务端伪造请求
  • 严格而言SSRF不是injection,但是原理类似