当前位置: 首页 > news >正文

XSS跨站脚本攻击及防护

什么是XSS攻击?
XSS(Cross-Site Scripting,跨站脚本攻击)是一种代码注入攻击。攻击者在目标网站上注入恶意代码,当用户(被攻击者)登录网站时就会执行这些恶意代码,通过这些脚本可以读取cookie,session tokens,或者网站其他敏感的网站信息,对用户进行钓鱼欺诈。

XSS玫击原理

XSS是指攻击者在网页中嵌入客户端脚本,通常是JavaScript 编写的恶意代码,也有使用其他客户端脚本语言编写的。当用户使用浏览器浏览被嵌入恶意代码的网页时,恶意代码将会在用户的浏览器上执行。

Javascript 可以用来获取用户的 Cookie、改变网页内容、URL 跳转,攻击者可以在 script 标签中输入 Javascript 代码,如 alert(/xss/),实现一些“特殊效果”。

XSS的危害
针对用户 窃取cookie劫持的会话 网络钓鱼 放马挖矿 广告刷流量 针对web服务 劫持后台(常见) 篡改页面 传播蠕虫 内网扫描(常见)

XSS攻击过程


XSS类型
反射型:
反射型也称为非持久型,这种类型的脚本是最常见的,也是使用最为广泛的一种,主要用于将恶意的脚本附加到URL地址的参数中。

存储型:
攻击者将已经构造完成的恶意页面发送给用户,用户访问看似正常的页面后收到攻击,这类XSS通常无法直接在URL中看到恶意代码,具有较强的持久性和隐蔽性。

DOM
DOM型XSS无需和后端交互,而是基于JavaScript上,JS解析URL中恶意参数导致执行JS代码

2.XSS分类详解
(1)存储型XSS
存储型XSS:持久性,代码是存储在web服务器中的,比如在个人信息或发表文章等地方插入代码,如果没有过滤或者过滤不严,那么这些代码将存储在服务器中,用户访问该页面的时候触发代码执行。这种XSS比较危险,容易造成蠕虫、盗窃cookie。每一个访问特定页面的用户,都会受到攻击。

特点:
XSS攻击代码存储于web server上;攻击者一般是通过网站的留言、评论、博客、日志等功能(所有能够向web server输入内容的地方),将攻击代码存储到web server上的存储型XSS攻击流程:

(2)反射型XSS
反射型跨站脚本也称作非持久型、参数型跨站脚本、这类型的脚本是最常见的 ,也是使用最为广泛的一种,主要用于将恶意的脚本附加到URL地址的参数中。

  `http://www.test.com/search.php?key="><script>alert("xss")</script>``   `

一般使用的将构造好的URL发给受害者,是受害者点击触发,而且只执行一次,非持久化。

反射型XSS攻击流程:


反射型XSS-DVWA:
  `Payload:`  `Low:<script>alert(1)</script>`  `Mid:<SCRIPT>alert(1)</SCRIPT>`  `High:<img  src=1  οnerrοr=alert(1)>`

XSS攻击防范

XSS攻击的两大要素是攻击者提交恶意代码和浏览器执行恶意代码,针对这两点进行防范。

攻击者提交恶意代码

防护的重点是针对用户数据,总体思路是:在服务器端对用户提交的内容进行过滤,对URL的参数也进行过滤,屏蔽掉可以造成XSS攻击的内容。

输入过滤:

Str_replace() 替换函数``Preg_replace() 执行正则表达式的搜索和替换``Strtolower() 转化为小写字符``Trim() 消除空格``Stripslashes() 消除反斜杠

浏览器执行恶意代码

对HTML做充分转义:通常只有一个规则,就是把 & < > " ’ / 这几个字符转义掉,确实能起到一定的 XSS防护作用,如 htmlspecialchars() 可将"<”和">”转换为HTML实体。
————————————————
原文链接:https://blog.csdn.net/Javachichi/article/details/139113985

相关文章:

XSS跨站脚本攻击及防护

什么是XSS攻击&#xff1f; XSS(Cross-Site Scripting,跨站脚本攻击)是一种代码注入攻击。攻击者在目标网站上注入恶意代码&#xff0c;当用户(被攻击者)登录网站时就会执行这些恶意代码&#xff0c;通过这些脚本可以读取cookie,session tokens&#xff0c;或者网站其他敏感的网…...

利用ClasserLoader来实现jar包加载并调用里面的方法

1.ClasserLoader介绍&#xff1f; classloader顾名思义&#xff0c;即是类加载。虚拟机把描述类的数据从class字节码文件加载到内存&#xff0c;并对数据进行检验、转换解析和初始化&#xff0c;最终形成可以被虚拟机直接使用的Java类型&#xff0c;这就是虚拟机的类加载机制。…...

【VUE】快速上手

一、快速上手 创建HTML文件引入vue.js <script src"https://unpkg.com/vue3/dist/vue.global.js"></script> <script src"https://cdn.bootcdn.net/ajax/libs/vue/3.3.4/vue.global.prod.js"></script>按照vue.js的语法编写代码…...

在 Docker 中部署无头 Chrome:在 Browserless 中运行

什么是 Browserless&#xff1f; Browserless 是一款基于云的浏览器解决方案&#xff0c;旨在实现高效的浏览器自动化、网页抓取和测试。 它利用 Nstbrowser 的指纹库&#xff0c;实现随机指纹切换&#xff0c;确保流畅的数据收集和自动化。得益于其强大的云基础设施&#xf…...

Meta-Learning数学原理

文章目录 什么是元学习元学习的目标元学习的类型数学推导1. 传统机器学习的数学表述2. 元学习的基本思想3. MAML 算法推导3.1 元任务设置3.2 内层优化&#xff1a;任务级别学习3.3 外层优化&#xff1a;元级别学习3.4 元梯度计算3.5 最终更新规则 4. 算法合并5. 理解 MAML 的优…...

【图像匹配】基于SURF算法的图像匹配,matlab实现

博主简介&#xff1a;matlab图像代码项目合作&#xff08;扣扣&#xff1a;3249726188&#xff09; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 本次案例是基于基于SURF算法的图像匹配&#xff0c;用matlab实现。 一、案例背景和算法介绍 前…...

RocketMQ实战与集群架构详解

目录 一、MQ简介 MQ的作用主要有以下三个方面 二、RocketMQ产品特点 1、RocketMQ介绍 2、RocketMQ特点 三、RocketMQ实战 1、快速搭建RocketMQ服务 2、快速实现消息收发 1. 命令行快速实现消息收发 2. 搭建Maven客户端项目 3、搭建RocketMQ可视化管理服务 4、升级分…...

docker容器中的内存占用高的问题分析

文章目录 问题描述原因分析分析1分析2验证猜想 结论和经验 问题描述 运维新增对某服务的监控后发现&#xff1a;内存不断上涨的现象。进一步确认&#xff0c;是因为有多个导出日志操作导致的内存上涨问题。 进一步的测试得出的结果是&#xff1a;容器刚启动是占用内存约为50M…...

纯血鸿蒙NEXT常用的几个官方网站

一、官方文档 https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/Readme-CN.md刚入门查看最多的就是UI开发模块&#xff0c;首先要熟悉组件使用 二、官方API参考 https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/development-i…...

A股上市公司企业创新能力、质量、效率-原始数据+dofile+结果(2006-2023年)

上市公司的创新能力体现在其不断研发新技术、新产品和服务的能力上&#xff0c;这是企业保持竞争优势的关键&#xff1b;质量则是指公司所提供的产品或服务达到高标准的程度&#xff0c;高质量是赢得客户信任和市场份额的基础&#xff1b;效率则涵盖了生产运营中的资源利用程度…...

Selenium:开源自动化测试框架的Java实战解析

背景 在软件开发领域&#xff0c;随着Web应用程序的日益复杂和快速迭代的需求&#xff0c;传统的手动测试方法已经无法满足高效、全面的测试需求。自动化测试作为一种高效、稳定的测试手段&#xff0c;逐渐成为软件开发流程中不可或缺的一环。Selenium&#xff0c;作为一款开源…...

搜索功能技术方案

1. 背景与需求分析 门户平台需要实现对服务信息的高效查询&#xff0c;包括通过关键字搜索服务以及基于地理位置进行服务搜索。面对未来可能的数据增长和性能需求&#xff0c;选择使用 Elasticsearch 来替代 MySQL 的全文检索功能。这一选择的背景与需求可以总结为以下几点&am…...

硬件体系架构的学习

硬件体系架构的学习 RISC全称Reduced Instruction Set Compute&#xff0c;精简指令集计算机&#xff1b; CISC全称Complex Instruction Set Computers&#xff0c;复杂指令集计算机。 SOC片上系统概念 System on Chip&#xff0c;简称Soc&#xff0c;也即片上系统。从狭义…...

【与C++的邂逅】--- C++的IO流

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏&#xff1a; 与C的邂逅 本篇博客我们来了解C中io流的相关知识。 &#x1f3e0; C语言输入输出 C语言中我们用到的最频繁的输入输出方式就是scanf ()与printf()。 sc…...

【C++ Primer Plus习题】16.8

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream> #include <set> #includ…...

基于stm32的四旋翼无人机控制系统设计系统设计与实现

文章目录 前言资料获取设计介绍功能介绍设计程序 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师&#xff0c;一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业…...

【原理图PCB专题】案例:原理图设计检查为什么要检查全局网络?

本案例发生在新人的PCB设计文件中,当然就算硬件老人们,其实只要不注意也很容易出现这种全局网络乱用的问题。 如下所示是给新人的接口参考图纸,要求使用嘉立创绘制16个相同的接口做一个工装板。同时还要增加单片机实现切换控制功能。可以看到座子的24个管脚中使用到了3.3V、…...

Java 之 IO流

一、IO流概述 在计算机编程中&#xff0c;IO流&#xff08;Input/Output Stream&#xff09;是处理设备间数据传输的关键技术。简单来说&#xff0c;IO流就是以流的方式进行输入输出&#xff0c;数据被当作无结构的字节序或字符序列来处理。在Java等编程语言中&#xff0c;IO流…...

计算机毕业设计 健身房管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…...

uniapp uview扩展u-picker支持日历期间 年期间 月期间 时分期间组件

uniapp uview扩展u-picker支持日历期间 年期间 月期间 时分期间组件 日历期间、年期间、月期间及时分期间组件在不同的应用场景中发挥着重要的作用。这些组件通常用于表单、应用程序或网站中&#xff0c;以方便用户输入和选择特定的日期和时间范围。以下是这些组件的主要作用&a…...

GAMES101(10~11节,几何)

Geometry implicit隐式几何表示&#xff1a; 函数f(x,y,z)&#xff1a; 根据函数fn描述几何&#xff0c;遍历所有空间内 的点&#xff0c;如果带入xyz到函数f(x,y,z)结果0那就绘制这个点 如果xyz求值结果>0表示在几何外&#xff0c;0在表面,<0在几何内 构造几何csg(…...

家电制造的隐形守护者:矫平机确保材料完美无瑕

在家电制造业中&#xff0c;产品的美观和耐用性是消费者选择的关键因素。然而&#xff0c;在生产过程中&#xff0c;材料的翘曲问题往往成为影响产品质量的隐形杀手。幸运的是&#xff0c;矫平机的出现&#xff0c;为家电制造商提供了一个有效的解决方案&#xff0c;确保每一件…...

软件设计师考纲及笔记

1. 计算机系统知识&#xff08;分值占比&#xff1a;10%&#xff0c;重要程度&#xff1a;★★★★☆&#xff09; 1.1 计算机系统基础 计算机组成&#xff1a; 中央处理器&#xff08;CPU&#xff09;&#xff1a;计算机的核心部件&#xff0c;执行指令并处理数据。内存&…...

基于SpringCloud的微服务框架

1. 服务架构演变 1.1 单体架构 开发部署方便&#xff0c;维护扩展难。 1.2 垂直分割 将应用拆分成多个垂直部分&#xff0c;每一部分负责一组相关功能。 1.3 SOA&#xff08;Service-Oriented Architecture&#xff09; 面向服务的架构&#xff0c;引入了服务的概念。通过…...

C++速通LeetCode简单第19题-只出现一次的数字

方法一&#xff1a;暴力求解&#xff0c;排序后两个两个比较&#xff0c;两者不同时前者为答案&#xff1a; class Solution { public:int singleNumber(vector<int>& nums) {if(nums.size() 1) return nums[0];list<int> l;int ans 0;for(int i 0;i< n…...

AutoSar AP中Proxy Class中Methods描述的总结

☞ 返回总目录 5.3.6 Methods&#xff08;方法&#xff09; Proxy Class 与方法包装类 代理类与方法成员&#xff1a;对于远程服务的每种方法&#xff0c;Proxy Class 包含特定于该方法的包装类成员。例如示例中有 Calibrate、Adjust 和 LogCurrentState 三种方法对应的成员。…...

如何在本地计算机中打开远程服务器的Jupyter notebook

1. 在你的本地计算机上打开终端。 2. 使用SSH命令创建一个隧道&#xff1a; ssh -L 8888:localhost:8888 your_usernameyour_server_ip 这里&#xff0c;your_username 是你的服务器用户名&#xff0c;your_server_ip 是你的服务器IP地址。 其中&#xff0c;-L 8888:localhos…...

实习项目|苍穹外卖|day11

Apache ECharts 前端技术。 营业额统计 还是比较简单的。 用户统计 订单统计 以上所有需求。难点在于对时间类的处理&#xff1a; // 接收格式 GetMapping("/turnoverStatistics")ApiOperation("营业额统计")public Result<TurnoverReportVO>…...

easy_cloudantivirus

0x00前言 必须安装在virtualbox 攻击机&#xff1a;kali 靶机 easy_cloudantivirus 链接&#xff1a; https://www.vulnhub.com/entry/boredhackerblog-cloud-av,453/ 0x01信息搜集 经过测试发现靶场IP为192.168.56.106 进一部对IP搜集信息 发现8080端口youhttp服务。…...

python中Web API 框架

Python 中有几个非常流行的 Web API 框架&#xff0c;它们让你可以轻松地构建和部署高效的 Web API。下面我将为你介绍几个最受欢迎的 Python Web API 框架&#xff0c;及其使用方法和特点。 1. FastAPI FastAPI 是一个现代、快速&#xff08;非常高性能&#xff09;的 Web 框…...