XSS攻击及防范
XSS攻击及防范XSS攻击及防范1 什么是XSS2 XSS类型2.1 反射型XSS2.2 存储型XSS2.3 DOM型XSS3 怎么预防XSS3.1 纯前端渲染3.2 转义HTML3.3 关注高危API3.4 其他措施1 什么是XSSXSS称为跨站脚本攻击Cross Site Scripting它的缩写原本应是CSS但是由于与层叠样式脚本Cascading Style Sheets简称CSS重名所以将缩写改为XSS。它是一种代码注入攻击发生在目标网站中目标用户的浏览器层面上。攻击者在目标网站上注入恶意代码当用户浏览目标网站时浏览器会渲染整个HTML文档这个过程中出现了不被预期的脚本指令并且被浏览器执行了XSS就会发生。利用这些恶意代码攻击者可以获取用户的敏感信息如Cookie、sessionId等控制用户的账号权限进而危害数据安全。在XSS攻击中恶意代码与网站正常的代码混合在一起浏览器没办法分辨出哪些代码是可信的哪些代码是不可信的于是会将恶意代码与正常代码一起执行导致用户信息泄漏。2 XSS类型根据攻击的来源XSS攻击可以分为存储型、反射型、DOM型3类。2.1 反射型XSS反射型XSS又称为非持久型XSS这种攻击一般是一次性的攻击代码被存储在url中作为输入提交到服务端服务端解析后响应响应内容中出现这段XSS代码最后浏览器解析执行。这个过程就像一次反射所以叫反射型XSS。反射型XSS基本攻击步骤如下攻击者通过邮件等形式将包含XSS代码的链接发送给用户诱导用户点击链接。用户点击该链接服务器收到用户的请求将恶意代码从url中取出拼接在HTML中返回给浏览器。用户浏览器接收到响应后解析执行代码混在其中的恶意代码也被执行。恶意代码窃取用户数据攻击者利用该数据进行一系列操作。例如当前我写了这样一段htmldiv 你好%- xss% /div如何我输入这个urlhttp://xxx?xssscriptalert(XSS);/script那么页面中会弹出写着“XSS”的对话框。2.2 存储型XSS存储型XSS又称为持久型XSS它与反射型XSS的区别在于攻击代码被存储在服务端包括数据库、内存和文件系统等下次请求目标页面时不用再提交XSS代码具有更强的隐蔽性。存储型XSS基本攻击步骤如下攻击者通过评论、私信、发帖等操作将恶意代码提交到目标网站的数据库中。用户打开目标网站时网站服务端将恶意代码从数据库取出拼接在HTML中返回给浏览器。用户浏览器接收到响应后解析执行混在其中的恶意代码也被执行。恶意代码窃取用户数据攻击者利用该数据进行一系列操作。最典型的例子就是留言板XSS。2.3 DOM型XSSDOM型XSS与反射型、存储型的区别在于DOM型的XSS代码不需要服务器解析响应的直接参与触发XSS靠的就是浏览器端的DOM解析可以认为完全是客户端的事情。DOM的XSS也是一种非持久性的攻击⼀般通过修改URL参数的⽅式加⼊攻击代码诱导⽤户访问链接从⽽进⾏攻击。攻击步骤如下攻击者构造出特殊的URL其中包含恶意代码。用户打开带有恶意代码的URL。用户浏览器接收到响应后解析执行前端JavaScript取出URL中的恶意代码并执行。恶意代码窃取用户数据并发送到攻击者的网站或者冒充用户的行为调用目标网站接口执行攻击者指定的操作。例如触发XSS的方式可以是输入一段这样的urlhttp://xxx.com#alert(1)常见的输入点有document.URL document.location document.cookie常见的输出点document.write() document.body.innerHtml ... document.create...(...) document.open(...)3 怎么预防XSSXSS攻击的实现需要有两个必要条件攻击者输入恶意代码浏览器执行恶意代码3.1 纯前端渲染纯前端渲染是指浏览器首先加载一个空白的HTML然后执行该HTML引入的JS文件JS通过AJAX获取业务数据调用DOM API更新到页面上。在纯前端渲染中我们会明确的告诉浏览器这是文本.innerText还是属性.setAttribute还是样式.style等等。纯前端渲染可以避免存储型和反射型的攻击但没法避免DOM型攻击者可以通过onload事件、href中嵌入javascript:...进行攻击。3.2 转义HTML对于需要考虑SEO的SSR项目不得不在服务端拼接HTML文件。那么必须使用HTML转义库基本规则是将 /几个字符转义掉但是并不完善XSS安全漏洞简单转义是否有防护作用HTML标签有HTML属性值有CSS内联样式无内联js无内联JSON无跳转链接无3.3 关注高危APIDOM 型XSS攻击实际上就是网站前端JavaScript代码本身不够严谨把不可信的数据当作代码执行了。在使用.innerHTML、.outerHTML、document.write()时要小心不要把不可信的数据作为HTML插到页面上而应尽量使用.textContent、.setAttribute()等。如果用Vue/React技术栈并且使用v-html/dangerouslySetInnerHTML功能就要在前端注意render阶段innerHTML、outerHTML的XSS隐患。DOM 中的内联事件监听器如location、onclick、onerror、onload、onmouseover等a标签的href属性JavaScript的eval()、setTimeout()、setInterval()等都能把字符串作为代码运行。如果不可信的数据拼接到字符串中传递给这些API很容易产生安全隐患。3.4 其他措施Content Security PolicyContent Security Policy内容安全策略简称csp用于检测并阻止网页加载非法资源的安全策略可以减轻xss攻击带来的危害和数据注入等攻击。严格的CSP在XSS的防范中可以起到以下的作用禁止加载外域代码防止复杂的攻击逻辑禁止外域提交网站被攻击后用户的数据不会泄露到外域禁止内联脚本执行禁止未授权的脚本执行合理使用上报可以及时发现XSS利于尽快修复问题开启http only禁止JavaScript读取某些敏感Cookie攻击者完成XSS注入后也无法窃取此Cookie。加入验证码加入验证码防止脚本冒充用户提交危险操作学习资源如果你是也准备转行学习网络安全黑客或者正在学习这里开源一份360智榜样学习中心独家出品《网络攻防知识库》,希望能够帮助到你**读者福利 |**CSDN大礼包《网络安全入门进阶学习资源包》免费分享**安全链接放心点击**![](https://i-blog.csdnimg.cn/img_convert/a6502ab41b1a86132b9ebb5aab9a2cdc.jpeg)知识库由360智榜样学习中心独家打造出品旨在帮助网络安全从业者或兴趣爱好者零基础快速入门提升实战能力熟练掌握基础攻防到深度对抗。1、知识库价值深度 本知识库超越常规工具手册深入剖析攻击技术的底层原理与高级防御策略并对业内挑战巨大的APT攻击链分析、隐蔽信道建立等提供了独到的技术视角和实战验证过的对抗方案。广度 面向企业安全建设的核心场景渗透测试、红蓝对抗、威胁狩猎、应急响应、安全运营本知识库覆盖了从攻击发起、路径突破、权限维持、横向移动到防御检测、响应处置、溯源反制的全生命周期关键节点是应对复杂攻防挑战的实用指南。实战性 知识库内容源于真实攻防对抗和大型演练实践通过详尽的攻击复现案例、防御配置实例、自动化脚本代码来传递核心思路与落地方法。2、 部分核心内容展示360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式既夯实基础技能更深入高阶对抗技术。360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式既夯实基础技能更深入高阶对抗技术。内容组织紧密结合攻防场景辅以大量真实环境复现案例、自动化工具脚本及配置解析。通过策略讲解、原理剖析、实战演示相结合是你学习过程中好帮手。1、网络安全意识2、Linux操作系统3、WEB架构基础与HTTP协议4、Web渗透测试5、渗透测试案例分享6、渗透测试实战技巧7、攻防对战实战8、CTF之MISC实战讲解3、适合学习的人群‌一、基础适配人群‌‌零基础转型者‌适合计算机零基础但愿意系统学习的人群资料覆盖从网络协议、操作系统到渗透测试的完整知识链‌‌开发/运维人员‌具备编程或运维基础者可通过资料快速掌握安全防护与漏洞修复技能实现职业方向拓展‌或者转行就业‌应届毕业生‌计算机相关专业学生可通过资料构建完整的网络安全知识体系缩短企业用人适应期‌‌二、能力提升适配‌1、‌技术爱好者‌适合对攻防技术有强烈兴趣希望掌握漏洞挖掘、渗透测试等实战技能的学习者‌2、安全从业者‌帮助初级安全工程师系统化提升Web安全、逆向工程等专项能力‌3、‌合规需求者‌包含等保规范、安全策略制定等内容适合需要应对合规审计的企业人员‌因篇幅有限仅展示部分资料完整版的网络安全学习资料已经上传CSDN朋友们如果需要可以在下方CSDN官方认证二维码免费领取【保证100%免费】

相关新闻

openYuanrong 监控与可观测性:分布式函数的全链路追踪实践

openYuanrong 监控与可观测性:分布式函数的全链路追踪实践

openYuanrong 监控与可观测性:分布式函数的全链路追踪实践 【免费下载链接】yuanrong openYuanrong runtime:openYuanrong 多语言运行时提供函数分布式编程,支持 Python、Java、C 语言,实现类单机编程高性能分布式运行。 项目地…

2026/6/27 20:47:02阅读更多 →
A-Tune特征工程与双层分类模型:AI如何智能识别应用工作负载

A-Tune特征工程与双层分类模型:AI如何智能识别应用工作负载

A-Tune特征工程与双层分类模型:AI如何智能识别应用工作负载 【免费下载链接】A-Tune A-Tune is an OS tuning engine based on AI. 项目地址: https://gitcode.com/openeuler/A-Tune 前往项目官网免费下载:https://ar.openeuler.org/ar/ A-Tune是…

2026/6/27 20:42:01阅读更多 →
Spring AI / Observability

Spring AI / Observability

Spring AI 参考 可观测性 Spring AI 构建于 Spring 生态系统的可观测性特性之上,以提供对 AI 相关操作的洞察。它为其核心组件提供指标和追踪能力:ChatClient(包括 Advisor)、ChatModel、EmbeddingModel、ImageModel 和 VectorSto…

2026/6/27 20:42:01阅读更多 →
Ansible-NAS:用 Ansible 和 Docker 搭建你的家庭服务器

Ansible-NAS:用 Ansible 和 Docker 搭建你的家庭服务器

文章目录Ansible-NAS:用 Ansible 和 Docker 搭建你的家庭服务器1、 这个项目解决什么问题2、 能跑什么3、 怎么装4、 和 FreeNAS 比有什么区别5、 适合什么人Ansible-NAS:用 Ansible 和 Docker 搭建你的家庭服务器 Ansible-NAS 在 GitHub 上拿到了 3,75…

2026/6/27 22:22:17阅读更多 →
西柚资产管理系统 V0.5 发布:统一身份认证与 AI 智能能力全面升级

西柚资产管理系统 V0.5 发布:统一身份认证与 AI 智能能力全面升级

西柚资产管理系统 V0.5 更新日志 发布日期:2026-06 🚀 重点更新 V0.5 版本重点围绕企业组织集成能力与 AI 智能化能力进行升级,实现统一身份管理、组织架构同步以及智能数据处理能力,为企业资产管理提供更加高效、智能的解决方…

2026/6/27 22:22:17阅读更多 →
吴恩达《深度学习》之看懂集束搜索

吴恩达《深度学习》之看懂集束搜索

我们终于来到了整个序列生成技术的最后一关——集束搜索(Beam Search)。 这个机制,是所有现代大型语言模型(LLM)、机器翻译系统、语音识别系统在最后吐出文本(推理输出)时的临门一脚。 在学集束…

2026/6/27 22:22:17阅读更多 →
高频PCB布线DFM核心准则:从串扰抑制到量产一致性优化

高频PCB布线DFM核心准则:从串扰抑制到量产一致性优化

高频PCB布线绝非简单的连通线路,其DFM设计核心是兼顾信号完整性、电磁兼容性与量产可制造性。低频布线只需满足通断、压降、间距基础要求,而高频布线的线宽、间距、平行长度、走线路径、铺铜方式,都会直接影响阻抗、串扰、插损、辐射等核心指…

2026/6/27 22:22:17阅读更多 →
【运动控制——补充AXIS_REF_SM3】

【运动控制——补充AXIS_REF_SM3】

运动控制——补充AXIS_REF_SM3核心成员变量1. 轴状态与控制 (State & Control)2. 实际值与设定值 (Actual & Set Values)3. 限幅与安全 (Limits & Safety)AXIS_REF_SM3.perfTimers继承关系AXIS_REF_SM3 是 CODESYS SoftMotion 运动控制平台中最核心、最基础的轴接口…

2026/6/27 22:22:17阅读更多 →
InfiniteTalk 源码解析 #5:Wav2Vec2 音频编码:如何把语音变成逐帧 audio embedding

InfiniteTalk 源码解析 #5:Wav2Vec2 音频编码:如何把语音变成逐帧 audio embedding

上一篇我们分析了 InfiniteTalk 的音频预处理流程。在进入模型之前,音频会先经历几步处理:视频抽音频↓ librosa 读取↓ 统一到 16k 采样率↓ 响度归一化↓ 单人或双人音频整理这些步骤的目标是把各种来源的音频统一成稳定的 speech array。但 speech ar…

2026/6/27 22:17:15阅读更多 →
【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体 一文搞定到底什么是智能体【人工智能】一文搞定到底什么是智能体一. LM,WorkFlow,Agent分别有什么么不同二. Agent的思考过程是怎样的三. Agent的五个核心部分1)LLM2)Prompt3)Me…

2026/6/27 11:20:40阅读更多 →
嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

1. 嵌入式GUI控件:从原理到实战的深度解析在嵌入式系统开发中,图形用户界面(GUI)的设计与实现往往是项目从“能用”到“好用”的关键一跃。不同于资源充沛的PC或移动平台,嵌入式设备的GUI需要在有限的CPU性能、内存空间…

2026/6/27 5:46:02阅读更多 →
Google AI Studio 300美元额度的真相与实战指南

Google AI Studio 300美元额度的真相与实战指南

1. 这300美金不是“送钱”,而是Google埋下的第一道技术门槛 你看到标题里那个醒目的“$300美金”时,第一反应可能是:又一个免费额度?领完就完事?我亲手试过——这300美金根本不是红包,而是一张入场券&…

2026/6/27 11:20:39阅读更多 →
10分钟AI语音克隆与实时变声:Retrieval-based-Voice-Conversion-WebUI完整指南

10分钟AI语音克隆与实时变声:Retrieval-based-Voice-Conversion-WebUI完整指南

10分钟AI语音克隆与实时变声&#xff1a;Retrieval-based-Voice-Conversion-WebUI完整指南 【免费下载链接】Retrieval-based-Voice-Conversion-WebUI Easily train a good VC model with voice data < 10 mins! 项目地址: https://gitcode.com/GitHub_Trending/re/Retrie…

2026/6/27 0:04:03阅读更多 →
Layerdivider:3分钟AI智能分层,彻底告别手动抠图时代

Layerdivider:3分钟AI智能分层,彻底告别手动抠图时代

Layerdivider&#xff1a;3分钟AI智能分层&#xff0c;彻底告别手动抠图时代 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider 还在为复杂的图像分层工作烦…

2026/6/27 0:04:03阅读更多 →
Tomcat中X-Frame-Options配置实战:防御点击劫持的四种方法与最佳实践

Tomcat中X-Frame-Options配置实战:防御点击劫持的四种方法与最佳实践

1. 项目概述&#xff1a;为什么X-Frame-Options是Web安全的“防盗门”&#xff1f;最近在排查一个老项目的安全审计报告时&#xff0c;又被提到了“点击劫持”风险&#xff0c;矛头直指缺失的X-Frame-Options响应头。这已经不是第一次了&#xff0c;很多开发团队&#xff0c;尤…

2026/6/27 0:04:03阅读更多 →