XSS——跨站脚本攻击
跨站点脚本攻击:通过对网页注入恶意脚本,成功地被浏览器执行,来达到攻击的目的。
一、XSS攻击类型与原理
1. 反射型XSS攻击
非持久性攻击,黑客使用社交性的交互技巧诱导用户点击访问目标服务器的链接,但是链接中内嵌了恶意代码,目标服务器将恶意代码原样返回,用户浏览器执行恶意代码,从而达到攻击目的。
攻击原理流程图:
(图来自:https://blog.csdn.net/qq_36119192/article/details/82469035#XSS)
2. 存储型XSS攻击
持久性攻击,黑客将恶意脚本提交到目标服务器,目标服务器将其存储在数据库中,当用户访问这些数据的时候,目标服务器将恶意脚本原样返回,用户浏览器执行恶意脚本,从而达到攻击目的。任何访问该数据内容的用户都会受到攻击,其危害性远大于反射型XSS攻击。
攻击原理流程图:
(图来自:https://blog.csdn.net/qq_36119192/article/details/82469035#XSS)
3. DOM型XSS攻击
非持久性攻击,不经过后端,是基于文档对象模型的一种漏洞,是通过url传入参数去控制触发的,其实也属于反射型XSS攻击。
二、XSS攻击的危害
通过XSS攻击,攻击者可以盗取用户的cookie信息,以及一些私密数据信息。
三、XSS攻击的防御
1. 对用户提交的所有内容进行过滤,对url中的所有参数进行过滤,对特殊字符进行转义,过滤掉任何会导致脚本执行的相关内容。
2. 对动态输出到用户浏览器页面上的内容进行html编码,使脚本无法在浏览器中执行。
3. 设置会话cookie的http only属性,使得客户端无法通过脚本访问cookie。
在PHP中,可以使用以下函数对数据进行过滤来防止XSS攻击:
strip_tags():删除HTML标签,保留一些原始数据。
htmlentities():使用一些等价的字符替代一些常见的HTML标签。(&、"、'、<、>)
htmlspecialchars():转义每一个可能的HTML标签。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)