Simonzhangs' blog Simonzhangs' blog
首页
  • 前端文章

    • HTML
    • CSS
    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • JS设计模式总结
  • 《Vue》
  • 《React》
  • 《TypeScript 从零实现 axios》
  • TypeScript
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • apple music
  • extension
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Simonzhangs

前端学习探索者
首页
  • 前端文章

    • HTML
    • CSS
    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • JS设计模式总结
  • 《Vue》
  • 《React》
  • 《TypeScript 从零实现 axios》
  • TypeScript
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • apple music
  • extension
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 技术文档

  • GitHub技巧

  • Nodejs

  • 博客搭建

  • Ajax

  • 计算机网络

    • 一篇文章了解cookie与session、token
    • Web开发常见攻击及应对方法
      • XSS攻击
        • 存储型XSS攻击
        • 反射型XSS攻击
        • 基于 DOM 的攻击
        • 防范措施
      • CSRF 攻击
        • 预防
      • Injection
        • SQL Injection
      • Dos攻击
        • Redos
        • DDoS
    • 浏览器渲染过程
    • WebSocket梳理
    • 35.TCP协议与UDP协议
    • HTTP常见状态码
    • DNS为什么使用UDP和TCP协议
    • HTTP协议相关总结
  • 计算机编译原理

  • 涨知识

  • 技术
  • 计算机网络
simonzhangs
2022-04-10
目录

Web开发常见攻击及应对方法

Web开发过程中安全问题十分值得重视,常见的攻击有:XSS攻击、CSRF攻击、Inject攻击、Dos攻击。

# XSS攻击

XSS攻击全称是Cross Site Scripting即跨站脚本攻击,攻击者利用Web页面漏洞,盲目信任用户提交的内容,向页面插入恶意Script代码,当用户浏览该页面时,嵌入的script代码被执行,从而达到恶意攻击的目的。XSS攻击可能会窃取用户信息,包括cookie、token等。

# 存储型XSS攻击

  • 恶意脚本被存在数据库中;
  • 访问页面 - 读数据 - 被攻击
  • 危害最大,对全部用户都可见

# 反射型XSS攻击

  • 不涉及数据库
  • 从 URL 上攻击,需要用户自己点击恶意链接
  • 对点击的用户造成攻击,盗取cookie

# 基于 DOM 的攻击

  • 基于 DOM 漏洞,与反射型不同的时,脚本被注入到DOM中,是浏览器解析执行的结果

# 防范措施

  • 过滤标签
  • 对用户输入的信息和 URL 参数进行过滤
  • 对输出的行进行 HTML 编码

# CSRF 攻击

CSRF攻击,全称Cross Site Request Forgery即跨站点请求伪造, 通过伪造其他网站的请求来实现攻击的。

CSRF 利用浏览器对用户身份的保存(cookie),诱导用户在身份有效期内触发请求攻击,发送恶意请求:

  • 用户登陆A网站,浏览器自动保存登陆的cookie
  • 用户进入攻击网站B,在B网站的诱导下出发了对A网站的请求
  • 请求过程会带着用户的cookie,则该请求被误认为是用户发起的请求,被A服务器正常处理,造成攻击

# 预防

  1. 设置cookie 的 sameSite 属性,让cookie 在跨站请求时候不会发送;
  2. 验证http referer 字段,该字段表示发起请求的源网址,通过验证该请求referer字段来判断是否为正常访问域名,如果不是则拒绝请求;
  3. token 验证,受到csrf攻击是因为只验证了用户的身份,并没有验证是否由自己的页面发起的,为访问用户添加token,可以在请求时判断是否为真实访问用户

token: 可以翻译成令牌,是服务端生成的一串字符串,用来作为客户端请求的令牌;当第一次登陆时,服务器端生成一个 token 并返回给客户端,客户端以后带上token便可以来访问服务器请求数据。 token 分为三部分,header密文、payload密文、签名三部分组成,均是由base64加密的:

  • header密文:对JWT进行的签名算法
  • payload: 包含用户名、创建时间和过期时间
  • 签名: 签名必须知道密钥才可以计算。

# Injection

# SQL Injection

SQL 注入是指在前端数据传入后台数据时,没有做严格的判断,导致传入的数据拼接到SQL语句中,被当作SQL语句的一部分执行,导致数据库受损。

原因:后台服务器接收相关参数为经过过滤直接带入数据库查询。

# Dos攻击

Dos攻击,即Denial of sevice,通过构造特定请求,导致服务器资源消耗,来不及响应更多请求,导致请求挤压,进而血崩效应。

# Redos

利用正则表达式贪婪模式来占用大量请求资源。

# DDoS

短时间内来自大量僵尸设备的请求流量,服务器不能及时完成全部请求,导致请求堆积,进而雪崩效应。

参考: 计算机网络--网络攻击XSS与CSRF(https://blog.csdn.net/zemprogram/article/details/109451863)

编辑 (opens new window)
上次更新: 2022/05/04, 21:37:45
一篇文章了解cookie与session、token
浏览器渲染过程

← 一篇文章了解cookie与session、token 浏览器渲染过程→

最近更新
01
一些有意思的类比
06-16
02
the-super-tiny-compiler解析
06-06
03
计算机编译原理总概
06-06
更多文章>
Theme by Vdoing | Copyright © 2021-2022
蜀ICP备2021023197号-2
Simonzhans | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
  • 飙升榜
  • 新歌榜
  • 云音乐民谣榜
  • 美国Billboard榜
  • UK排行榜周榜