什么是XSS攻击

概念
XSS 攻击指的是跨站脚本攻击,是一种代码注入攻击。攻击者通过在网站注入恶意脚本,使之在用户的浏览器上运行,从而盗取用户的信息如 cookie 等。

XSS 的本质是因为网站没有对恶意代码进行过滤,与正常的代码混合在一起了,浏览器没有办法分辨哪些脚本是可信的,从而导致了恶意代码的执行。

攻击者可以通过这种攻击方式可以进行以下操作:
● 获取页面的数据,如DOM、cookie、localStorage;
● DOS攻击,发送合理请求,占用服务器资源,从而使用户无法访问服务器;
● 破坏页面结构;
● 流量劫持(将链接指向某网站);
攻击类型
XSS攻击可以分为存储型,反射型,DOM型
● 存储型指的是恶意脚本会存储在目标服务器上,当浏览器请求数据时,脚本从服务器传回并执行。
● 反射型指的是攻击者诱导用户访问一个带有恶意代码的 URL 后,服务器端接收数据后处理,然后把带有恶意代码的数据发送到浏览器端,浏览器端解析这段带有 XSS 代码的数据后当做脚本执行,最终完成 XSS 攻击。
● DOM 型指的通过修改页面的 DOM 节点形成的 XSS。
(1)存储型 XSS 的攻击步骤:

  1. 攻击者将恶意代码提交到⽬标⽹站的数据库中。
  2. ⽤户打开⽬标⽹站时,⽹站服务端将恶意代码从数据库取出,拼接在 HTML 中返回给浏览器。
  3. ⽤户浏览器接收到响应后解析执⾏,混在其中的恶意代码也被执⾏。
  4. 恶意代码窃取⽤户数据并发送到攻击者的⽹站,或者冒充⽤户的⾏为,调⽤⽬标⽹站接⼝执⾏攻击者指定的操作。
    (2)反射型 XSS 的攻击步骤:
  5. 攻击者构造出特殊的 URL,其中包含恶意代码。
  6. ⽤户打开带有恶意代码的 URL 时,⽹站服务端将恶意代码从 URL 中取出,拼接在 HTML 中返回给浏览器。
  7. ⽤户浏览器接收到响应后解析执⾏,混在其中的恶意代码也被执⾏。
  8. 恶意代码窃取⽤户数据并发送到攻击者的⽹站,或者冒充⽤户的⾏为,调⽤⽬标⽹站接⼝执⾏攻击者指定的操作。

反射型 XSS 跟存储型 XSS 的区别是:存储型 XSS 的恶意代码存在数据库⾥,反射型 XSS 的恶意代码存在 URL ⾥。

(3)DOM 型 XSS 的攻击步骤:

  1. 攻击者构造出特殊的 URL,其中包含恶意代码。
  2. ⽤户打开带有恶意代码的 URL。
  3. ⽤户浏览器接收到响应后解析执⾏,前端 JavaScript 取出 URL 中的恶意代码并执⾏。
  4. 恶意代码窃取⽤户数据并发送到攻击者的⽹站,或者冒充⽤户的⾏为,调⽤⽬标⽹站接⼝执⾏攻击者指定的操作。

DOM 型 XSS 跟前两种 XSS 的区别:DOM 型 XSS 攻击中,取出和执⾏恶意代码由浏览器端完成,属于前端JavaScript ⾃身的安全漏洞,⽽其他两种 XSS 都属于服务端的安全漏洞。

如何防范XSS攻击?
1.可以从浏览器的执行来进行预防,一种是使用纯前端的方式,不用服务器端拼接后返回(不使用服务端渲染)。另一种是对需要插入到 HTML 中的代码做好充分的转义。对于 DOM 型的攻击,主要是前端脚本的不可靠而造成的,对于数据获取渲染和字符串拼接的时候应该对可能出现的恶意代码情况进行判断。
2.使用 CSP ,CSP 的本质是建立一个白名单,告诉浏览器哪些外部资源可以加载和执行,从而防止恶意代码的注入攻击。

**CSP 指的是内容安全策略,它的本质是建立一个白名单,告诉浏览器哪些外部资源可以加载和执行。我们只需要配置规则,如何拦截由浏览器自己来实现。通常有两种方式来开启 CSP,一种是设置 HTTP 首部中的 Content-Security-Policy,一种是设置 meta 标签的方式

【计算机网络浏览器原理】XSS攻击相关推荐

  1. 深入理解XSS攻击与防御

    深入理解XSS攻击与防御 What is XSS XSS攻击的类型 XSS攻击原理 XSS攻击危害 XSS攻击方法 How to defense XSS 防御原则:永远不要相信用户的输入. 防御措施 ...

  2. 前端知识点之浏览器原理

    文章摘自https://juejin.cn/post/6916157109906341902/ 浏览器安全 XSS攻击 概念 **XSS攻击是一种跨站脚本攻击.是一种代码注入攻击.**攻击者通过在网站 ...

  3. 互联网安全架构平台设计之预防XSS攻击

    互联网安全架构平台设计之预防XSS攻击 文章目录 互联网安全架构平台设计之预防XSS攻击 一.什么是XSS攻击? 二.XSS攻击详解 1.XSS攻击的原理 2.解决方案 三.注意事项 一.什么是XSS ...

  4. 服务器安全:浏览器同源策略与跨域请求、XSS攻击原理及防御策略、如何防御CSRF攻击

    主要包括 浏览器同源策略与跨域请求 XSS攻击原理及防御策略 如何使用SpringSecurity防御CSRF攻击 CC/DDOS攻击与流量攻击 什么是SSL TLS HTTPS? 一.浏览器的同源策 ...

  5. xss原理、攻击方式与防御

    xss原理: xss叫跨站脚本攻击,是Web程序中常见的漏洞只用于客户端的攻击方式,其原理是攻击者向有XSS漏洞的网站中输入(传入)恶意的HTML代码,当其它用户浏览该网站时,这段HTML代码会自动执 ...

  6. SQL注入和XSS攻击的原理

    8.4 Web跨站脚本攻击 8.4.1  跨站脚本攻击的原理(1) 跨站脚本在英文中称为Cross-Site Scripting,缩写为CSS.但是,由于层叠样式表 (Cascading Style ...

  7. XSS漏洞原理及攻击

    XSS漏洞原理 XSS介绍 XSS漏洞介绍 1. 跨站脚本(Cross-Site Scripting),简称为XSS或CSS或跨站脚本攻击,是一种针对网站应用程序的安全漏洞攻击技术,是代码注入的一种. ...

  8. Web 安全之 XSS 攻击原理/分类/防御 详解

    什么是 XSS 攻击? 全称 Cross-Site Scripting 跨站脚本攻击,简写为了避免和 CSS 冲突而改成 XSS 原理:通过在浏览器可输入的地方(比如评论栏.搜索栏.地址栏等)注入脚本 ...

  9. 详解 XSS 攻击原理

    更多优质博文请关注:听到微笑的博客 跨站脚本攻击(Cross Site Scripting)本来的缩写为CSS,为了与层叠样式表(Cascading Style Sheets,CSS)的缩写进行区分, ...

最新文章

  1. python【力扣LeetCode算法题库】914. 卡牌分组(reduce collections.Counter)
  2. 使用Firebug或chrome-devToolBar深入学习javascript语言核心
  3. 最近的状态很不好,需要调整
  4. IOS之学习笔记九(对象的初始化)
  5. 探测服务器操作系统,探测服务器操作系统工具
  6. mib 文件中的 rowstatus 参数_k8s yaml格式的pod定义文件详解
  7. java war目录_java war包 路径--解决war包中文件路径问题
  8. python测试系列教程 —— YAML配置文件语法教程
  9. php_D3_“简易聊天室 ”实现的关键技术 详解
  10. 富士相机设置传原图_「富士相机」机身设置分享,摄影小白也可以拍摄到胶片感的照片...
  11. 下载网页 TS视频并自动合成视频
  12. 2021年房地产经纪行业发展研究报告
  13. NTC热敏电阻温度计算以及C语言实现
  14. 获取163邮箱的邮件 并下载附件
  15. mysql关于xsd数据集的论述
  16. 设计模式 — 简单工厂模式(Simple Factory)
  17. 计算机系统运用的科学原理,人工智能的工作原理是什么?
  18. 屏保问题(即背光灯的关闭)
  19. spark livy
  20. 《一头扎进JavaScript-基础篇》学习笔记

热门文章

  1. Java Web应用开发_04javaWeb基础
  2. long自动转为float类型
  3. 指针实现入栈、出栈、取栈顶元素
  4. Python之路【第七篇】:常用模块
  5. mysql定时任务,每天凌晨1点执行
  6. 【调试】——idea远程调试服务器上的代码
  7. 查看网络通不通的几种方法
  8. Vultr CentOS主机无法登录/循环登录/SSH拒绝连接以及使用Finnix恢复系统
  9. 高频电路之LC并联谐振回路
  10. 1、ATK-LORA-01