No.14 笔记 | XSS漏洞:原理、类型与防御策略

news2024/11/20 21:30:23

一、HTML和JavaScript基础

1. HTML基础

  • HTML概述:超文本标记语言,用于实现页面跳转和显示数据。
  • 结构标准:包括<!doctype html>声明文档类型,<html>根标签,<head>头部标签和<body>主体标签等。
  • 标签分类:分为单标签(如<br/><hr/>)和双标签(如<a></a><html></html>)。
  • form标签:用于创建HTML表单,包含输入元素、菜单、文本区域等,用于向服务器传输数据。
  • iframe标签:允许在同一浏览器窗口中显示多个页面。

2. JavaScript基础

  • 概述:一种直译式脚本语言,与Java无关,可动态操作HTML内容、响应事件、读写HTML元素等。
  • 引入方式:可通过<script>标签直接在HTML中编写,也可引用外部文件。
  • 常用函数:包括alert()confirm()prompt()
  • 事件类型:包括鼠标事件、键盘事件和HTML事件,如onmouseoveronclick等。

3. Cookie和Session

  • Cookie:保存在客户端的文本文件,用于记录用户信息,分为本地Cookie和临时Cookie。
  • Session:存储在服务器的类HashTable结构,用于存放用户数据,通过SessionID标识。

二、XSS漏洞原理

  • 定义:XSS(Cross Site Scripting)是指攻击者将恶意脚本植入网页,当用户访问时脚本被执行。
  • 攻击流程
    1. 攻击者注入JS代码。
    2. 用户浏览包含恶意代码的页面。
    3. 浏览器执行恶意代码,达到攻击者目的。
  • 危害:包括弹框骚扰、挂马攻击、会话劫持、Cookie盗取、用户提权、账号盗取、DDOS攻击、蠕虫传播等。

三、XSS漏洞分类与利用

1. 反射型(非持续型)

  • 原理:恶意脚本附加在URL参数中,前端执行,不存储在后端。
  • 攻击步骤:攻击者构造特殊URL,用户访问后,服务端返回拼接后的HTML,浏览器执行恶意代码。

2. 存储型(持续型)

  • 原理:恶意代码存储在服务器,当用户浏览相关页面时执行,持久性存储。
  • 攻击步骤:攻击者将恶意代码提交到目标网站,用户访问时,服务端从数据库取出并返回给浏览器执行。

3. DOM型

  • 原理:XSS代码不需服务端解析,由浏览器端DOM解析触发。
  • 攻击步骤:攻击者构造特殊URL,用户访问后,浏览器端直接执行恶意代码。

四、XSS漏洞绕过方法

  1. 大小写绕过:如<ScRiPt>alert(1)</ScRiPt>
  2. 双写绕过:如<sc<script>ript>alert(/xss/)</script>
  3. 反引号绕过:绕过单双引号过滤。
  4. 关闭标签绕过:利用<>关闭标签。
  5. 超链接标签绕过:如<a href= >1</a>
  6. 图片链接绕过:如<img src=1 onerror=alert(1)>
  7. 编码绕过:利用八进制、十进制、十六进制编码、HTML实体编码、URL编码、base64等,以及空格、回车、换行符、tab、混淆等。

五、XSS漏洞防御

  1. CSP内容安全策略:禁止加载外域代码、外域提交,禁止内联脚本执行和未授权脚本执行。
  2. 设置HttpOnly:防止Cookie被窃取。
  3. 输入输出检查:在前端和后端进行,采用白名单或黑名单验证,对输出字符进行HTML编码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2199586.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Markdown 语法详解大全(超级版)(四)——Markdown 使用 Emoji 表情 (附:表情符号简码列表)

Markdown 语法详解大全(超级版)&#xff08;四&#xff09; ——Markdown 使用 Emoji 表情 &#xff08;附&#xff1a;表情符号简码列表&#xff09; 本文目录&#xff1a; 一、复制和粘贴表情符号 二、使用表情符号简码 三、表情符号简码列表 本系列文章&#xff1a; Ma…

阿里云CDN设置阀值的指南

在如今这个信息爆炸的时代&#xff0c;网站的访问速度和用户体验变得尤为重要。阿里云CDN&#xff08;内容分发网络&#xff09;作为一种高效的解决方案&#xff0c;帮助用户加速网站内容的分发。然而&#xff0c;如何合理设置CDN的阀值&#xff0c;确保资源的高效利用&#xf…

【有啥问啥】深度探索:COG Agent与GUI Agent的工作原理与实施策略

深度探索&#xff1a;COG Agent与GUI Agent的工作原理与实施策略 在当今的数字化时代&#xff0c;图形用户界面&#xff08;GUI&#xff09;已经成为人机交互的主流。然而&#xff0c;传统依赖于文本或代码解析的GUI自动化方法在面对复杂多变的界面时常常显得力不从心。无论是…

工业交换机的安全机制

在当今信息技术迅速发展的时代&#xff0c;工业交换机作为网络通信的重要设备&#xff0c;其安全机制愈发受到重视。工业交换机的安全性不仅关乎企业的信息保护&#xff0c;更是整个工业网络运行稳定性的基石。为了确保数据传输的安全和网络的可靠性&#xff0c;现代工业交换机…

linux程序说明

Linux 文件和目录管理命令 文件和目录 cd 切换目录 cd [目录路径]&#xff1a;进入指定的目录。 cd ~ 进入当前用户的主目录。 cd - 返回上一次所在的目录。 cd .. 进入上级目录。 cd / 进入根目录。 cd ../.. 进入上上级目录。 cd /目录路径&#xff1a;进入指定的根目录中…

如何防止图纸外泄?图纸防泄密的六个方法(图纸安全管理措施)

图纸&#xff0c;作为企业技术和设计的结晶&#xff0c;一旦外泄&#xff0c;可能造成不可估量的损失。 如何有效防止图纸外泄&#xff0c;成为企业在信息安全管理中的重要环节。 下面我们将通过六个有趣又实用的方法&#xff0c;帮助你轻松实现图纸的安全管理。 1. 安企神系…

人脸表情行为识别系统源码分享

人脸表情行为识别系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

PCL 计算点云AABB包围盒(惯性矩阵)

目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.1.1 计算AABB包围盒 2.1.2 可视化点云与AABB包围盒 2.2完整代码 三、实现效果 PCL点云算法汇总及实战案例汇总的目录地址链接&#xff1a; PCL点云算法与项目实战案例汇总&#xff08;长…

从0打造本地聊天机器人:如何实现大模型流式输出?OpenAI+Ollama 实战

尽管有了 GPU 加持&#xff0c;推理速度依然很慢&#xff0c;怎么搞&#xff1f; 流式输出&#xff01; 相比全部生成后再输出&#xff0c;流式输出生成一句就播报一句&#xff0c;大大减少了用户的等待时间。 主流大模型推理 API 包括&#xff1a; OpenAI 格式&#xff1a…

史上最浅显易懂Python教程,138页学习笔记,35个知识点一文掌握

这份笔记的目标是为了给出一份比较精炼&#xff0c;但是又要浅显易懂的Python教程。《Python学习手册》中文第四版虽然比较简单&#xff0c;但是措辞比较罗嗦&#xff0c;而且一个语法点往往散落在多个章节&#xff0c;不方便读者总结。 我在做笔记时&#xff0c;将一个知识点…

数字王国里的虚拟人――技术、商业与法律解读

&#x1f482; 个人网站:【 摸鱼游戏】【神级代码资源网站】【海拥导航】&#x1f91f; 找工作&#xff0c;来万码优才&#xff1a;&#x1f449; #小程序://万码优才/HDQZJEQiCJb9cFi&#x1f485; 想寻找共同学习交流&#xff0c;摸鱼划水的小伙伴&#xff0c;请点击【全栈技…

用友crm客户关系管理config/fillbacksettingedit.php接口存在SQL注入漏洞

免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。 1. 用友crm客户关系管理简介 微信公众号搜索:南风漏…

LangChain4j系列—Java AI框架LangChain4j快速入门

一、概述 LangChain4j于2023年初在ChatGPT的炒作中开始开发。我们注意到&#xff0c;与众多的Python和JavaScript LLM库和框架相比&#xff0c;缺少Java对应项&#xff0c;我们必须修复它&#xff01;尽管“LangChain”是以我们的名义命名的&#xff0c;但该项目融合了LangCha…

UEFI学习笔记(十):系统表与ACPI表的遍历

一、概述 在 UEFI 系统表中&#xff0c;有几个关键的表用于提供系统信息、服务和硬件抽象。这些表可以通过 EFI_SYSTEM_TABLE 访问&#xff0c;常见的 UEFI 系统表如下&#xff1a; 1、EFI_SYSTEM_TABLE (系统表) EFI_SYSTEM_TABLE 是一个指针&#xff0c;包含多个服务和系统…

电力电子技术03 AC-DC整流器(1)---AC-DC整流器概述

一、AC-DC整流器概述 1.AC-DC整流器简介 AC-DC整流器是将交流电&#xff08;AC&#xff09;转换为直流电&#xff08;DC&#xff09;的电力电子设备&#xff0c;它在许多电子设备中至关重要&#xff0c;尤其是需要稳定直流电源的应用场景&#xff0c;如电源适配器、电脑电源、…

VSCode中添加自定义代码片段

目录 VSCode中添加自定义代码片段 基本操作 辅助工具 VSCode中添加自定义代码片段 基本操作 打开Visual Studio Code设置&#xff0c;选择Snippets 在弹出的窗口中选择新建全局片段文件 如果只想为当前工作目录设置片段文件则选择第二个 输入新全局片段文件的名称 这个文件…

Redis学习(十二)连接数不足报错及分析修复:ERR max number of clients reached.

目录 一、问题介绍二、问题分析2.1 redis-cli 登录2.2 info clients 查看连接数情况2.3 client list 查看具体连接情况2.4 分析连接空闲时长2.5 client list 根据客户端IP统计连接数 三、问题结论和解决3.1 问题结论&#xff1a;3.2 解决方案①&#xff1a;优化程序3.3 解决方案…

execl表格批量换行问题

我拿到了一份execl表格。需要用代码去读每一行。 当我点击wps中的换行的时候。显示已经换行了。 但是我双击图表的时候&#xff0c;显示换行并没有生效。 还是在cell单元格里有很多行。 此时&#xff0c;ctrlf打开替换按钮。 选择替换的内容&#xff1a;altenter 按住alten…

轨迹预测升级:如何让自动驾驶汽车从意图与风险中真正读懂“人心”?

导读&#xff1a; 本篇文章提出了一种基于联合预测的轨迹预测模型&#xff0c;包括交互模块、意图模块和风险评估模块。实验结果表明&#xff0c;本文模型在正常场景中保持高准确性&#xff0c;并且展现了在事故场景中应对具有挑战性或者突发情况的潜力。©️【深蓝AI】编译…

重学SpringBoot3-集成Redis(九)之共享Session

更多SpringBoot3内容请关注我的专栏&#xff1a;《SpringBoot3》 期待您的点赞&#x1f44d;收藏⭐评论✍ 重学SpringBoot3-集成Redis&#xff08;九&#xff09;之共享Session 1. 为什么需要 Session 共享2. Spring Session 和 Redis 的集成2.1. 引入依赖2.2. 配置 Redis 连接…