学习黑客5 分钟深入浅出理解Windows Firewall
5 分钟深入浅出理解Windows Firewall 🔥
大家好!今天我们将探索Windows防火墙——这是Windows操作系统中的核心安全组件,负责控制进出计算机的网络流量。无论你是计算机初学者,还是在TryHackMe等平台上学习网络安全的爱好者,理解Windows防火墙的工作原理和配置方法对于保护系统安全和执行渗透测试都至关重要。让我们一起揭开Windows防火墙的神秘面纱吧!🚀
1. Windows防火墙基本概念 🛡️
“防火墙就像你家的安全门,决定谁能进来,谁不能进来,同时也控制谁能出去。”
Windows防火墙是一个主机防火墙,内置于Windows操作系统中,用于过滤入站和出站网络流量。它检查每个数据包,并根据预定义的安全规则决定是允许还是阻止这些数据包。
Windows防火墙的演变:
Windows版本 | 防火墙版本 | 关键特性 | 发布年份 |
---|---|---|---|
Windows XP SP2 | Windows防火墙 | 基本入站过滤 | 2004 |
Windows Vista/7 | Windows防火墙与高级安全 | 入站/出站规则, 多配置文件 | 2007/2009 |
Windows 8/8.1 | 增强型Windows防火墙 | 改进的用户界面, 应用过滤 | 2012/2013 |
Windows 10 | 下一代Windows防火墙 | 与Defender集成, 基于应用的控制 | 2015 |
Windows 11 | 现代Windows防火墙 | 增强云集成, 自动化规则 | 2021 |
防火墙的基本功能:
功能 | 描述 | 安全重要性 |
---|---|---|
入站流量过滤 | 控制外部流量进入系统 | ⭐⭐⭐⭐⭐ |
出站流量过滤 | 控制内部流量离开系统 | ⭐⭐⭐⭐ |
应用程序控制 | 基于应用程序的流量管理 | ⭐⭐⭐⭐ |
端口管理 | 控制网络端口的访问 | ⭐⭐⭐⭐⭐ |
协议过滤 | 基于网络协议的流量管理 | ⭐⭐⭐ |
规则管理 | 创建和管理防火墙规则 | ⭐⭐⭐⭐ |
配置文件支持 | 基于网络环境的不同设置 | ⭐⭐⭐⭐ |
2. Windows防火墙架构 🏗️
Windows防火墙是一个多层系统,包含几个关键组件:
主要组件:
Windows防火墙架构
├── Windows过滤平台(WFP) - 核心过滤引擎
│ ├── 过滤引擎(Filter Engine)
│ ├── 基本过滤引擎(Base Filtering Engine, BFE)服务
│ └── 调用层API
├── 防火墙服务(MpsSvc)
├── 防火墙规则存储
│ ├── 本地规则
│ └── 组策略规则
├── 用户界面组件
│ ├── Windows安全中心UI
│ ├── 高级安全Windows防火墙(wf.msc)
│ └── 命令行工具(netsh, PowerShell)
└── 驱动程序组件└── 内核模式驱动程序(mpfilter.sys)
Windows过滤平台(WFP):
WFP是防火墙的核心技术,它提供了一个统一的过滤平台:
WFP组件 | 功能 | 技术特点 |
---|---|---|
过滤引擎 | 执行数据包过滤 | 内核级过滤 |
BFE服务 | 管理防火墙策略 | 系统服务 |
调用层 | 应用程序接口 | 供开发人员使用 |
过滤层 | 网络堆栈中的不同点 | 多点过滤 |
过滤条件 | 匹配规则条件 | 精细控制 |
3. 防火墙配置文件 📋
Windows防火墙使用不同的配置文件来应用不同的安全设置,基于当前的网络环境:
三种网络位置配置文件:
配置文件 | 适用场景 | 默认安全级别 | 典型使用场景 |
---|---|---|---|
域配置文件 | 连接到活动目录域 | 中等 | 企业网络 |
专用配置文件 | 连接到受信任网络 | 中等 | 家庭或小型办公室 |
公用配置文件 | 连接到公共网络 | 高 | 咖啡店, 机场 |
配置文件设置:
每个配置文件可以有不同的设置:
# 查看当前防火墙配置文件状态
Get-NetFirewallProfile# 检查特定配置文件设置
Get-NetFirewallProfile -Name Public | Format-List# 修改配置文件设置(例如启用公共配置文件)
Set-NetFirewallProfile -Profile Public -Enabled True
配置文件识别逻辑:
Windows如何确定使用哪个配置文件:
- 域配置文件:当计算机能够验证与域控制器的连接时
- 专用配置文件:当用户明确指定网络为专用或满足特定条件
- 公用配置文件:默认配置文件,当不符合其他条件时使用
4. 基本防火墙管理 ⚙️
有多种方法可以管理Windows防火墙:
图形界面管理:
界面 | 访问方法 | 功能 |
---|---|---|
Windows安全中心 | 开始菜单 → 设置 → 更新和安全 → Windows安全中心 | 基本控制 |
高级安全Windows防火墙 | 运行 wf.msc 或 控制面板 → 系统和安全 → Windows防火墙 → 高级设置 | 完整管理 |
控制面板 | 控制面板 → 系统和安全 → Windows防火墙 | 中级控制 |
命令行管理:
# 使用netsh命令
# 查看防火墙状态
netsh advfirewall show allprofiles# 启用/禁用防火墙
netsh advfirewall set currentprofile state on
netsh advfirewall set currentprofile state off# 重置防火墙到默认设置
netsh advfirewall reset
PowerShell管理:
# 查看防火墙状态
Get-NetFirewallProfile# 启用/禁用防火墙
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False# 设置默认操作(阻止或允许)
Set-NetFirewallProfile -DefaultInboundAction Block -DefaultOutboundAction Allow -NotifyOnListen True -AllowUnicastResponseToMulticast True -Profile Public
5. 防火墙规则管理 📝
防火墙规则是控制网络流量的核心机制:
规则类型:
规则类型 | 说明 | 安全重要性 |
---|---|---|
入站规则 | 控制进入系统的流量 | ⭐⭐⭐⭐⭐ |
出站规则 | 控制离开系统的流量 | ⭐⭐⭐⭐ |
程序规则 | 基于应用程序的规则 | ⭐⭐⭐⭐ |
端口规则 | 基于TCP/UDP端口的规则 | ⭐⭐⭐⭐⭐ |
预定义规则 | 系统内置规则 | ⭐⭐⭐ |
自定义规则 | 用户创建的规则 | ⭐⭐⭐⭐ |
创建新规则:
通过PowerShell创建规则:
# 创建入站端口规则
New-NetFirewallRule -DisplayName "Allow Incoming Port 80" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow -Profile Public# 创建出站应用程序规则
New-NetFirewallRule -DisplayName "Block Outbound Program" -Direction Outbound -Program "C:\path\to\program.exe" -Action Block -Profile Domain,Private,Public
通过netsh创建规则:
# 创建入站端口规则
netsh advfirewall firewall add rule name="Allow Incoming Port 80" dir=in action=allow protocol=TCP localport=80# 创建出站应用程序规则
netsh advfirewall firewall add rule name="Block Outbound Program" dir=out action=block program="C:\path\to\program.exe"
管理现有规则:
# 查看所有规则
Get-NetFirewallRule | Select-Object DisplayName, Enabled, Direction, Action | Format-Table -AutoSize# 启用/禁用规则
Set-NetFirewallRule -DisplayName "规则名称" -Enabled True
Set-NetFirewallRule -DisplayName "规则名称" -Enabled False# 删除规则
Remove-NetFirewallRule -DisplayName "规则名称"
6. 高级防火墙功能 🚀
Windows防火墙包含多种高级功能,增强网络安全:
IPsec集成:
Windows防火墙与IPsec(Internet协议安全)集成,提供加密和身份验证:
# 创建包含IPsec要求的规则
New-NetFirewallRule -DisplayName "Require IPsec" -Direction Inbound -Authentication Required -Protocol TCP -LocalPort 3389 -Action Allow
连接安全规则:
连接安全规则定义计算机之间的身份验证要求:
# 创建要求身份验证的连接安全规则
New-NetIPsecRule -DisplayName "Authenticate All Inbound" -InboundSecurity Require -OutboundSecurity Request
安全监视:
配置防火墙日志以监视网络活动:
# 启用防火墙日志
Set-NetFirewallProfile -LogAllowed True -LogBlocked True -LogFileName "%systemroot%\system32\LogFiles\Firewall\pfirewall.log"# 设置日志大小和属性
Set-NetFirewallProfile -LogMaxSizeKilobytes 32767
7. 防火墙与网络安全场景 🔒
Windows防火墙在不同网络环境中的应用:
远程工作安全:
为远程工作配置防火墙:
配置 | 目的 | 实现 |
---|---|---|
VPN通道保护 | 保护远程连接 | 创建允许VPN协议的规则 |
公共Wi-Fi保护 | 增强公共网络安全 | 在公共配置文件下限制所有入站连接 |
远程桌面限制 | 控制RDP访问 | 限制特定IP访问3389端口 |
# 配置远程工作场景的防火墙规则
# 允许VPN通信
New-NetFirewallRule -DisplayName "Allow VPN" -Direction Inbound -Protocol UDP -LocalPort 1194 -Action Allow -Profile Public# 限制RDP只接受来自特定IP的连接
New-NetFirewallRule -DisplayName "Limit RDP" -Direction Inbound -Protocol TCP -LocalPort 3389 -RemoteAddress 192.168.1.0/24 -Action Allow -Profile Any
服务器安全强化:
服务器环境中的防火墙配置:
# Web服务器配置
New-NetFirewallRule -DisplayName "Allow HTTP" -Direction Inbound -Protocol TCP -LocalPort 80,443 -Action Allow -Profile Any
New-NetFirewallRule -DisplayName "Block All Other Traffic" -Direction Inbound -Action Block -Profile Any -Priority 2000# 数据库服务器配置
New-NetFirewallRule -DisplayName "Allow DB Traffic" -Direction Inbound -Protocol TCP -LocalPort 1433 -RemoteAddress 10.0.0.0/24 -Action Allow -Profile Any
多层防御策略:
将防火墙与其他安全控制结合:
多层防御架构
├── 网络层
│ ├── 边界防火墙
│ ├── Windows防火墙(主机级)
│ └── 网络隔离
├── 主机层
│ ├── 防病毒/反恶意软件
│ ├── 应用程序白名单
│ └── 补丁管理
└── 应用层├── 应用程序防火墙├── 内容过滤└── 行为分析
8. 防火墙问题排查 🔧
解决常见的Windows防火墙问题:
连接问题诊断:
问题 | 可能原因 | 解决方法 |
---|---|---|
无法访问服务 | 阻止入站规则 | 检查并创建允许规则 |
应用无法连接 | 阻止出站规则 | 检查出站连接设置 |
特定端口被阻止 | 端口规则冲突 | 审核端口规则优先级 |
防火墙阻止域流量 | 网络配置文件错误 | 验证网络位置设置 |
故障排除命令:
# 检查防火墙配置
netsh advfirewall show allprofiles# 测试特定规则
Get-NetFirewallRule -DisplayName "规则名称" | Get-NetFirewallPortFilter# 检查正在监听的端口
netstat -ano | findstr "LISTENING"# 测试端口连接
Test-NetConnection -ComputerName localhost -Port 80# 临时禁用防火墙进行测试(谨慎使用)
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False
日志分析:
# 启用详细日志记录
Set-NetFirewallProfile -LogAllowed True -LogBlocked True -LogIgnored True# 分析防火墙日志
Get-Content "$env:systemroot\system32\LogFiles\Firewall\pfirewall.log" | Select-Object -Last 50# 寻找被阻止的连接
Get-Content "$env:systemroot\system32\LogFiles\Firewall\pfirewall.log" | Select-String "DROP"
9. 防火墙与组策略集成 📊
在企业环境中,Windows防火墙通常通过组策略管理:
组策略配置:
组策略类别 | 位置 | 控制内容 |
---|---|---|
防火墙状态 | 计算机配置 → 策略 → Windows设置 → 安全设置 → Windows防火墙与高级安全 | 启用/禁用防火墙 |
入站/出站默认操作 | 同上 | 允许/阻止默认行为 |
配置文件设置 | 同上 | 域/专用/公用设置 |
规则配置 | 同上 | 集中定义防火墙规则 |
# 通过PowerShell导出GPO防火墙设置(在域控制器上)
$gpoName = "Firewall Policy"
$gpo = Get-GPO -Name $gpoName
$path = "C:\Temp\FirewallPolicy.xml"
$gpo | Get-GPOReport -ReportType Xml -Path $path
集中管理的优势:
- 一致的安全策略应用于所有企业设备
- 防止最终用户修改关键安全设置
- 集中策略更新和部署
- 符合性和审计跟踪
10. Windows防火墙与第三方防火墙 🔄
Windows防火墙与第三方解决方案的关系:
比较:
特性 | Windows防火墙 | 典型第三方防火墙 |
---|---|---|
内置系统集成 | ✓✓✓ | ✓ |
资源使用 | 较低 | 通常较高 |
高级功能 | 基本到中级 | 通常更多 |
用户界面 | 基本/高级 | 通常更友好 |
更新频率 | 随系统更新 | 独立更新(可能更频繁) |
集中管理 | 通过GPO | 专用管理控制台 |
成本 | 免费(内置) | 通常需付费 |
共存注意事项:
# 检查是否有多个防火墙产品
Get-Service | Where-Object {$_.DisplayName -like "*firewall*" -or $_.DisplayName -like "*Firewall*"}# 检查防火墙服务状态
Get-Service MpsSvc# 如果使用第三方防火墙,可能需要禁用Windows防火墙
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False
选择建议:
- 普通家庭用户:Windows内置防火墙通常足够
- 高级用户:根据需要可考虑功能更丰富的第三方解决方案
- 企业环境:评估内置防火墙加上其他安全产品,或专用企业级解决方案
11. 在TryHackMe和安全测试中的应用场景 🏆
Windows防火墙在安全测试中的应用:
场景1:渗透测试防御绕过
在TryHackMe等平台的渗透测试练习中,了解防火墙机制有助于识别绕过方法:
# 识别开放端口和服务
nmap -sS -p- 192.168.1.100# 检测防火墙规则和配置
auxiliary/scanner/portscan/tcp# 寻找允许规则中的漏洞
# 例如,检查是否有允许所有出站流量的规则
netsh advfirewall show currentprofile
场景2:安全加固练习
提高系统安全性的防火墙配置:
# 创建安全基线脚本
# 启用所有配置文件的防火墙
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True# 设置默认规则为阻止入站,允许出站
Set-NetFirewallProfile -DefaultInboundAction Block -DefaultOutboundAction Allow -NotifyOnListen True -AllowUnicastResponseToMulticast True -Profile Public# 添加特定允许规则
New-NetFirewallRule -DisplayName "Allow Web Browsing" -Direction Outbound -Protocol TCP -RemotePort 80,443 -Action Allow -Profile Any
场景3:事件响应和取证
使用防火墙日志进行调查:
# 启用全面日志记录
Set-NetFirewallProfile -LogAllowed True -LogBlocked True -LogIgnored False -LogFileName "%systemroot%\system32\LogFiles\Firewall\pfirewall.log"# 分析可疑的连接尝试
Get-Content "$env:systemroot\system32\LogFiles\Firewall\pfirewall.log" | Where-Object {$_ -match "RECEIVE" -and $_ -match "DROP" -and $_ -match "ICMP"} | Select-Object -First 20# 检查是否有针对特定端口的扫描
Get-Content "$env:systemroot\system32\LogFiles\Firewall\pfirewall.log" | Where-Object {$_ -match "DROP" -and $_ -match "TCP" -and $_ -match "3389"} | Select-Object -First 20
12. 便携设备的防火墙策略 💻
针对经常在不同网络环境中使用的笔记本电脑和移动设备:
多配置文件策略:
# 公共网络配置 - 高安全性
Set-NetFirewallProfile -Profile Public -Enabled True -DefaultInboundAction Block -DefaultOutboundAction Allow -NotifyOnListen True# 私人网络配置 - 平衡型
Set-NetFirewallProfile -Profile Private -Enabled True -DefaultInboundAction Block -DefaultOutboundAction Allow -AllowLocalFirewallRules True -NotifyOnListen True# 允许VPN连接(在公共网络上)
New-NetFirewallRule -DisplayName "Allow VPN (Public)" -Direction Outbound -Protocol UDP -RemotePort 1194,443 -Action Allow -Profile Public
网络位置感知:
确保Windows正确识别网络位置:
# 查看当前连接的网络及其类别
Get-NetConnectionProfile# 更改网络位置类别
Set-NetConnectionProfile -InterfaceIndex 12 -NetworkCategory Private# 创建针对特定网络的规则
New-NetFirewallRule -DisplayName "Allow App on Home Network" -Direction Inbound -Program "C:\path\to\app.exe" -Action Allow -Profile Private -RemoteAddress 192.168.1.0/24
13. 防火墙安全最佳实践 🔝
保护Windows系统的防火墙最佳实践:
基本安全设置:
-
启用所有配置文件的防火墙:
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True
-
配置默认操作:
# 对所有配置文件应用"默认拒绝"策略 Set-NetFirewallProfile -DefaultInboundAction Block -DefaultOutboundAction Allow -Profile Domain,Private,Public
-
仅允许必要服务:
# 审核现有规则 Get-NetFirewallRule | Where-Object {$_.Enabled -eq 'True' -and $_.Direction -eq 'Inbound'} | Format-Table DisplayName, Profile, Action, Direction -AutoSize# 禁用不必要的规则 Set-NetFirewallRule -DisplayName "规则名称" -Enabled False
高级安全实践:
实践 | 实现方法 | 安全好处 |
---|---|---|
定期审核规则 | 每月检查并清理规则 | 减少攻击面 |
启用出站过滤 | 限制应用程序的出站连接 | 防止恶意软件通信 |
细化规则范围 | 使用精确的IP范围和端口 | 最小权限原则 |
记录防火墙活动 | 配置全面的日志记录 | 检测和响应异常 |
创建备份 | 导出防火墙配置 | 快速恢复能力 |
配置备份与恢复:
# 备份防火墙配置
netsh advfirewall export "C:\Backup\firewall_config.wfw"# 恢复防火墙配置
netsh advfirewall import "C:\Backup\firewall_config.wfw"# PowerShell方式备份特定规则
$rules = Get-NetFirewallRule -PolicyStore ActiveStore
$rules | ConvertTo-Json | Out-File "C:\Backup\firewall_rules.json"
14. 总结与进阶学习 🌟
Windows防火墙是系统安全的重要组成部分,提供了多层网络保护:
核心要点:
- ✅ Windows防火墙控制进出系统的网络流量
- ✅ 三种配置文件(域、专用、公用)对应不同网络环境
- ✅ 可以通过GUI、PowerShell和netsh进行管理
- ✅ 规则是防火墙的基本控制单元,可细化控制流量
- ✅ 日志和审计功能对排查问题和安全分析至关重要
- ✅ 企业环境中通常通过组策略集中管理防火墙
进阶学习方向:
- 📘 深入研究Windows过滤平台(WFP)架构
- 🔐 学习高级IPsec集成和连接安全规则
- 🛡️ 探索Windows防火墙与其他安全产品的集成
- 📚 研究企业级防火墙管理和自动化
- 🔍 学习高级防火墙绕过技术和防御
Windows防火墙虽然是一个基本安全组件,但正确配置它对防御网络威胁至关重要。持续学习和应用最佳实践,将帮助你在个人和专业环境中更好地保护Windows系统!
相关文章:
学习黑客5 分钟深入浅出理解Windows Firewall
5 分钟深入浅出理解Windows Firewall 🔥 大家好!今天我们将探索Windows防火墙——这是Windows操作系统中的核心安全组件,负责控制进出计算机的网络流量。无论你是计算机初学者,还是在TryHackMe等平台上学习网络安全的爱好者&…...
node .js 启动基于express框架的后端服务报错解决
问题: node .js 用npm start 启动基于express框架的后端服务报错如下: /c/Program Files/nodejs/npm: line 65: 26880 Segmentation fault "$NODE_EXE" "$NPM_CLI_JS" "$" 原因分析: 遇到 /c/Program F…...
feign.RequestInterceptor 简介-笔记
1. feign.RequestInterceptor 简介 Feign 是一个声明式 Web 服务客户端,用于简化 HTTP 请求的编写与管理。feign.RequestInterceptor 是 Feign 提供的一个接口,用于在请求发出之前对其进行拦截和修改。这在微服务架构中非常有用,比如在请求中…...
软考错题(四)
在程序执行过程中,高速缓存cache与主存间的地址映射由硬件自动完成 以下关于两个浮点数相加运算的叙述中,正确的是首先进行对阶,阶码小的向阶码大的对齐 认证只能阻止主动攻击不能阻止被动攻击 BGP是外部网关协议 查看端口信息࿱…...
SSRF相关
SSRF(Server Side Request Forgery,服务器端请求伪造),攻击者以服务器的身份发送一条构造好的请求给服务器所在地内网进行探测或攻击。 产生原理: 服务器端提供了能从其他服务器应用获取数据的功能,如从指定url获取网页内容、加载指定地址的图…...
供应链学习
供应链安全 供应链:整个业务系统中的节点(一般是上游节点) 乙方一般提供资源:人 软件 硬件 服务 如何寻找供应链 1.招投标信息:寻标包 例如:烟草 智能办公 2.网站本身指纹 例如: powered by xxx…...
力扣HOT100之二叉树:226. 翻转二叉树
这道题很简单,用递归来做,对于一个根节点来说,有两种情况我们不需要翻转:一是根节点为空,二是根节点为叶子节点。这很容易理解,当传入的节点不满足上面的两种情况时,我们就需要做一个翻转&#…...
如何让rabbitmq保存服务断开重连?保证高可用?
在 Spring Boot 集成 RabbitMQ 时,可以通过以下几种方式让 RabbitMQ 保存服务断开重连,以保证高可用: 配置自动重连 application.properties 配置 :在 Spring Boot 的配置文件 application.properties 中,可以设置 Ra…...
TCPIP详解 卷1协议 九 广播和本地组播(IGMP 和 MLD)
9.1——广播和本地组播(IGMP 和 MLD) IPv4可以使用4种IP地址:单播(unicast)、任播(anycast)、组播(multicast)和广播(broadcast)。 IPv6可以使用…...
全球变暖-bfs
1.不沉的就是4个方向没有海,一个大岛屿有一个不沉就行了,其余染色就好了 2.第一个bfs来统计总岛屿个数 3.第二个来统计不沉岛屿个数 4.一减就ac啦 #include<bits/stdc.h> using namespace std; #define N 100011 typedef long long ll; typede…...
DDD领域驱动开发
1. 现象: 软件设计质量最高的时候是第一次设计的那个版本(通常是因为第一次设计时,业务技术沟通最充分,从业务技术整体视角出发设计系统)。当第一个版本设计上线以后就开始各种需求变更,这常常又会打乱原有的设计。 2…...
【HarmonyOS 5】鸿蒙App Linking详解
【HarmonyOS 5】鸿蒙App Linking详解 一、前言 HarmonyOS 的 App Linking 功能为开发者提供了一个强大的工具,通过创建跨平台的深度聚合链接,实现用户在不同场景下的无缝跳转,极大地提升了用户转化率和应用的可用性。 其安全性、智能路由和…...
Android Studio 中 build、assemble、assembleDebug 和 assembleRelease 构建 aar 的区别
上一篇:Tasks中没有build选项的解决办法 概述: 在构建 aar 包时通常会在下面的选项中进行构建,但是对于如何构建,选择哪种方式构建我还是处于懵逼状态,所以我整理了一下几种构建方式的区别以及如何选择。 1. build…...
【爬虫】12306查票
城市代码: 没有加密,关键部分: 完整代码: import json import requests with open(rE:\学习文件夹(关于爬虫)\项目实战\12306\城市代码.json,r,encodingutf-8) as f:city_codef.read() city json.loads(c…...
火山RTC 7 获得远端裸数据
一、获得远端裸数据 1、获得h264数据 1)、远端编码后视频数据监测器 /*** locale zh* type callback* region 视频管理* brief 远端编码后视频数据监测器<br>* 注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的&a…...
请求参数:Header 参数,Body 参数,Path 参数,Query 参数分别是什么意思,什么样的,分别通过哪个注解获取其中的信息
在API开发中(如Spring Boot),请求参数可以通过不同方式传递,对应不同的注解获取。以下是 Header参数、Body参数、Path参数、Query参数 的区别及对应的注解: Header 参数 • 含义:通过HTTP请求头&#x…...
【Web/HarmonyOS】采用ArkTS+Web组件开发网页嵌套的全屏应用
文章目录 1、简介2、效果3、在ArkTs上全屏Web3.1、创建ArkTS应用3.2、修改模块化配置(module.json5)3.3、修改系统栏控制(ArkTS代码) 4、双网页嵌套Web实现5、ArkTSWeb技术架构的演进 1、简介 在鸿蒙应用开发领域,技术…...
Leetcode (力扣)做题记录 hot100(34,215,912,121)
力扣第34题:在排序数组中查找第一个数和最后一个数 34. 在排序数组中查找元素的第一个和最后一个位置 - 力扣(LeetCode) class Solution {public int[] searchRange(int[] nums, int target) {int left 0;int right nums.length - 1;int[…...
Babylon.js学习之路《三、创建你的第一个 3D 场景:立方体、球体与平面》
文章目录 1. 引言:从零构建一个 3D 场景1.1 目标与成果预览1.2 前置条件 2. 初始化 Babylon.js 场景2.1 创建 HTML 骨架2.2 初始化引擎与场景 3. 创建基础几何体3.1 立方体(Box)3.2 球体(Sphere)3.3 平面(P…...
Go 语言即时通讯系统开发日志-day1:从简单消息收发 Demo 起步
Go语言即时通讯系统开发日志day1,主要模拟实现的一个简单的发送消息和接受消息的小demo,因为也才刚学习go语言的语法,对go的json、net/http库了解不多,所以了解了一下go语言的encoding/json库和net/http库,以及websock…...
AAAI-2025 | 中科院无人机导航新突破!FELA:基于细粒度对齐的无人机视觉对话导航
作者:Yifei Su, Dong An, Kehan Chen, Weichen Yu, Baiyang Ning, Yonggen Ling, Yan Huang, Liang Wang 单位:中国科学院大学人工智能学院,中科院自动化研究所模式识别与智能系统实验室,穆罕默德本扎耶德人工智能大学࿰…...
中科院无人机导航物流配送的智能变革!LogisticsVLN:基于无人机视觉语言导航的低空终端配送系统
作者:Xinyuan Zhang, Yonglin Tian, Fei Lin, Yue Liu, Jing Ma, Kornlia Sra Szatmry, Fei-Yue Wang 单位:中国科学院大学人工智能学院,中科院自动化研究所多模态人工智能系统国家重点实验室,澳门科技大学创新工程学院工程科学系…...
IP协议、以太网包头及UNIX域套接字
IP协议、以太网包头及UNIX域套接字 IP包头结构 IP协议是互联网的核心协议之一,其包头包含了丰富的信息来控制数据包的传输。让我们详细解析IPv4包头结构: 4位版本号(version):标识IP协议版本,IPv4值为4 4位首部长度(header len…...
普林斯顿数学三剑客读本分析。
这几天看了普斯林顿数学三剑客,主要看了微积分、概率论前半部分,数学分析看了目录,大体略读了一下。怎么说呢,整体上来看,是很不错的,适合平常性阅读,配套结合国内教材习题来深入还是很不错的。…...
Matlab 模糊pid的液压舵机伺服系统
1、内容简介 Matlab 235-模糊pid的液压舵机伺服系统 可以交流、咨询、答疑 2、内容说明 略 舵机是轮船,客机等机器控制系统的重要组成部分,是客机,战斗机等飞行器操作系统的关键部件,也是一种超高的精度的位置伺服系统ÿ…...
Linux基础命令之目录管理——了解各种操作文件目录的命令,万字教学,超详细!!!(1)
文章目录 前言1、Linux文件系统1.1 核心特点1.2 重要目录结构1.3 文件类型1.4 文件和目录的命名规则1.5 文件与目录的定位方式 2、查看目录或文件的详细信息(ls)2.1 基本语法2.2 常用操作2.3 高级用法 3、切换目录(cd)3.1 常用操作…...
中国黄土高原中部XF剖面磁化率和粒度数据
时间分辨率:1000年 < x空间分辨率为:空共享方式:申请获取数据大小;35.75 KB数据时间范围:743-0 ka元数据更新时间:2023-08-15 数据集摘要 该数据集包括中国黄土高原中部XF剖面磁化率和粒度数据。将所有…...
tabs切换#
1、html <el-tabs v-model"tabValue" tab-change"handleTabClick"><el-tab-pane label"集群" name"1"></el-tab-pane><el-tab-pane label"节点" name"2"></el-tab-pane></el-ta…...
免费Office图片音频高效提取利器
软件介绍 今天要给大家介绍一款非常好用的Office文档图片及音频提取工具,它不仅好用,而且完全免费,没有任何广告。 软件概况 这款名为Office File Picture Extractor(PPT图片提取)的软件,大小仅有4MB。打…...
迁移 Visual Studio Code 设置和扩展到 VSCodium
本文同步发布在个人博客 迁移 Visual Studio Code 设置和扩展到 VSCodium - 萑澈的寒舍https://hs.cnies.org/archives/vscodium-migrateVisual Studio Code(以下简称 VS Code)无疑是当下最常用的代码编辑器。尽管微软的 VS Code 源代码采用 MIT 协议开…...
1.7 方向导数
(底层逻辑演进脉络)从"单车道"到"全路网"的导数进化史: 一、偏导数奠基(1.6核心) 诞生背景:多元函数分析需求 当变量间存在耦合关系时(如房价面积单价装修成本)…...
深入理解目标检测中的关键指标及其计算方法
深入理解目标检测中的关键指标及其计算方法 在目标检测领域,评估模型性能时,我们通常会关注几个关键指标,这些指标帮助我们量化模型的准确性和有效性。本文将详细介绍这些常见指标及其计算方法,帮助你更好地理解和评估目标检测模…...
Ollama+OpenWebUI+docker完整版部署,附带软件下载链接,配置+中文汉化+docker源,适合内网部署,可以局域网使用
前言: 因为想到有些环境可能没法使用外网的大模型,所以可能需要内网部署,看了一下ollama适合小型的部署,所以就尝试了一下,觉得docker稍微简单一点,就做这个教程的,本文中重要的内容都会给下载…...
【Redis实战篇】分布式锁-Redisson
1. 分布式锁-redisson功能介绍 基于setnx实现的分布式锁存在下面的问题: 重入问题: 重入问题是指 获得锁的线程可以再次进入到相同的锁的代码块中,可重入锁的意义在于防止死锁,比如HashTable这样的代码中,他的方法都…...
构造二叉树
一、由中序和后序遍历序列构造二叉树 106. 从中序与后序遍历序列构造二叉树 - 力扣(LeetCode) /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* …...
vue3: pdf.js 3.4.120 using javascript
npm install pdfjs-dist3.4.120 项目结构: pdfjsViewer.vue <template><div><div v-if"loading" class"flex justify-center items-center py-8"><div class"animate-spin rounded-full h-12 w-12 border-b-2 borde…...
编译原理AST以Babel为例进行解读、Webpack中自定义loader与plugin
AST树详解 编译原理 主要研究如何将高级编程语言的源代码转换为机器能理解的目标代码(通常是二进制代码或中间代码)。编译器的底层实现通常包含多个阶段,包括词法分析、语法分析、语义分析和代码生成。 一、AST的核心概念与作用 AST&#…...
牛客周赛 Round 92
目录 A-小红的签到题 代码 B-小红的模拟 代码 C-小红的方神题 代码 D-小红的数学题 代码 无注释版 有注释版 E-小红的ds题 代码 无注释版 有注释版 A-小红的签到题 代码 #include<bits/stdc.h> using namespace std; int main(){int n;cin>>n;cha…...
面试题:C++虚函数可以是内联函数吗?
目录 1.引言 2.示例 3.总结 1.引言 为什么C的虚函数和内联函数这两个看似矛盾的特性能否共存?这个问题实际上触及了C编译期优化与运行时多态性之间的微妙平衡。我发现这个问题不仅是面试中的常见陷阱,更是理解C深层机制很好的一个点。 虚函数可以被声…...
蚁群算法赋能生鲜配送:MATLAB 实现多约束路径优化
在生鲜农产品配送中,如何平衡运输效率与成本控制始终是行业难题。本文聚焦多目标路径优化,通过 MATLAB 实现蚁群算法,解决包含载重限制、时间窗约束、冷藏货损成本的复杂配送问题。代码完整复现了从数据生成到路径优化的全流程,助…...
前苹果首席设计官回顾了其在苹果的设计生涯、公司文化、标志性产品的背后故事
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
《基于 Kubernetes 的 WordPress 高可用部署实践:从 MariaDB 到 Nginx 反向代理》
手把手教你用 Kubernetes 部署高可用 WordPress 博客 本实验通过 Kubernetes 容器编排平台,完整部署了一个高可用的 WordPress 网站架构,包含 MariaDB 数据库、WordPress 应用和 Nginx 反向代理三大核心组件。实验涵盖了从基础环境准备到最终服务暴露的…...
文件上传总结
攻击与绕过方式 一、条件竞争 攻击原理:在上传文件的同时利用代码逻辑中的时序问题(如 unlink() 删除操作)触发条件竞争,从而实现上传恶意文件并绕过限制。 示例测试源码: 以下为测试文件上传功能的 PHP 源码ÿ…...
在文档里如何引用在线SVG甘特图
在文档里如何引用在线SVG甘特图 介绍 本文将详细介绍如何快速创建一个功能强大的在线甘特图,并将其嵌入到其他文档(如 Notion、Wiki、Qiita、GitHub、Obsidian、Email 等)中。只要目标工具支持引用网络图片,你就可以轻松实现这一…...
Spring AI 与 Groq 的深度集成:解锁高效 AI 推理新体验
Spring AI 与 Groq 的深度集成:解锁高效 AI 推理新体验 前言 在人工智能飞速发展的当下,AI 推理的效率和性能成为开发者关注的焦点。Groq 作为一款基于 LPU™ 的超快速 AI 推理引擎,凭借其强大的性能,能够支持各类 AI 模型&…...
101alpha---第10
rank(((0 < ts_arg_min(ts_delta(close, 1), 4)) ? ts_delta(close, 1) : ((ts_arg_max(ts_delta(close, 1), 4) < 0) ? ts_delta(close, 1) : (-1 * ts_delta(close, 1))))) alpha 那么我们来看具体含义 吧 rank(((0 < ts_arg_min(ts_delta(close, 1), 4)) ? …...
vim中的查找
在 Vim 中,使用 n 键可以按正向(向下)继续查找下一个匹配项。若要反向(向上)查找,可以使用以下方法: 1. 使用 N 键反向查找 在查找命令(如 /keyword)后,按下…...
什么是IP专线?企业数字化转型的关键网络基础设施
为什么企业需要IP专线? 在当今数字化浪潮席卷全球的背景下,企业网络需求正经历着前所未有的变革。传统网络架构已难以满足现代企业对高效、安全、灵活网络服务的需求,IP专线正是在这一背景下应运而生的关键网络解决方案。 专线服务本质上是…...
Linux环境基础开发工具的使用(yum、vim、gcc、g++、gdb、make/Makefile)
目录 Linux软件包管理器 - yum Linux下载软件的方式 认识yum 查找软件包 安装软件包 如何实现本地机器和云服务器之间的文件互传 卸载软件 Linux编辑器 - vim vim的基本概念 vim下各模式的切换 vim命令模式各命令汇总 vim底行模式各命令汇总 Linux编译器 - gcc/g …...
5.11 - 5.12 JDBC+Mybatis+StringBoot项目配置文件
JDBC: 预编译SQL优点:安全,性能更高。 在cmd里面输入java-jar就可以运行jar包。 Mybatis: 持久层框架。用于简化JDBC的开发。 数据库连接池里面放置的是一个一个Connection连接对象。(连接池中的连接可以复用&#…...