Burp Suite扫描深度配置指南:被动扫描、主动扫描与自定义插入点协同调优

news2026/5/24 4:09:30
1. 这不是“点一下就扫完”的配置而是扫描质量的分水岭很多人把 Burp Suite Scanner 当成一个“自动漏洞探测器”——填个 URL点下“Active Scan”等它跑完弹出一堆高危告警就以为任务完成了。我见过太多这样的场景安全测试报告里列着 37 个“SQL 注入高”结果开发一查日志全是扫描器往/favicon.ico、/robots.txt甚至POST /login的 JSON 字段里硬塞 OR 11--导致的 400 错误也见过被动扫描开了半年却漏掉了整个管理后台的/api/v2/internal/*路径只因为 Burp 默认不把带internal的路径当“敏感上下文”。这些不是工具不行而是配置没穿透到业务逻辑层。Burp Suite Scanner 的核心价值从来不在“能不能扫”而在于“扫得准不准、深不深、稳不稳”。主动扫描Active Scan决定你能否发现可利用的漏洞被动扫描Passive Scan决定你能否捕获真实流量中的逻辑缺陷而自定义插入点Custom Insertion Points则决定了扫描器是否真正理解你的应用——它知道哪些参数是 JWT 的Authorization头里的 Base64 编码字段哪些是 GraphQL 请求体中嵌套三层的variables.user.id哪些是 WebSocket 消息里用\x00分隔的二进制字段。这三者不是并列功能模块而是一条递进链被动扫描喂数据自定义插入点定靶心主动扫描打穿靶心。本文讲的就是如何把这条链从“能跑通”调校到“打得准”。关键词全部落在标题里Burp Suite Scanner是载体主动扫描是攻击面验证手段被动扫描是流量感知机制自定义插入点是语义理解能力。如果你正在做渗透测试、红队评估、SDL 安全左移或 API 安全治理且已熟悉 Burp 基础界面Proxy、Repeater、Target那么这篇内容就是为你写的——它不教你怎么安装 Burp也不讲“什么是 SQLi”而是聚焦在当你面对一个 VueSpring CloudgRPC 的混合架构后台、一个带 JWT 和动态签名头的移动端 API、或一个用 Protobuf 序列化请求体的 IoT 管理平台时如何让 Scanner 不再是“盲扫”而是成为你业务语义的延伸。我试过 17 种不同配置组合踩过包括“扫描器因自定义插入点正则写错导致 CPU 占满 100% 持续 6 小时”“被动扫描误将加密 token 当作普通参数注入导致大量误报”在内的 9 类典型坑。下面的内容就是我把这些实操经验反向拆解后按真实工作流重构的深度配置指南。2. 被动扫描不是“开着就行”它是整个扫描策略的数据源与质量基线2.1 被动扫描的本质流量镜像 上下文建模而非简单抓包很多人以为 Passive Scan 就是“Proxy 流量自动进 Scanner”这是最大误解。Burp 的被动扫描器Passive Scanner实际执行的是三阶段处理流水线流量捕获层Capture监听 Proxy、Spider、Repeater、Intruder 等所有模块发出的 HTTP(S) 请求/响应注意默认不捕获 WebSocket 帧、gRPC 流、FTP 或非 HTTP 协议流量上下文提取层Extraction对每个请求/响应提取 URL、参数名、参数值、Header 名/值、Cookie、JSON Key/Value、XML Tag/Text、HTML Form Action/Field 等结构化元素规则匹配层Matching将提取出的每个元素逐条比对内置的 200 条被动扫描规则如 “检测响应中是否含mysql_fetch_array错误字符串”、“检测Set-Cookie是否缺失HttpOnly标志”。关键点在于被动扫描不发任何新请求它只分析已有流量但它分析的粒度直接决定后续主动扫描的靶点质量。如果被动扫描漏掉了某个关键参数比如前端拼接在 URL 中的?tokenxxxregioncn-shanghai那么主动扫描就不会把这个region当作可注入点如果它把加密后的data字段当成明文参数处理就会在错误位置尝试注入导致大量无效 payload 和误报。提示被动扫描的“上下文提取”能力完全依赖 Burp 对协议结构的理解深度。默认情况下它能正确解析标准 JSON、XML、HTML、URL-encoded 表单但对以下场景会失效GraphQL 请求体中的{query:query{user(id:$id)},variables:{id:123}}——$id是变量占位符但 Burp 默认不会识别variables.id为独立插入点Protobuf 序列化后的二进制请求体 —— Burp 无法解析其字段结构仅将其视为原始字节流自定义编码的 Header如X-Signature: base64(hmac-sha256(bodysecret))—— Burp 不会解码X-Signature值更不会意识到 body 改变后该 Header 必须重算。2.2 关键配置项详解从“能运行”到“懂业务”Burp 的被动扫描配置入口在Dashboard → Passive Scan但真正起效的设置分散在三个地方全局扫描配置、目标范围定义、以及最关键的“Scope”控制。我们逐项拆解2.2.1 Scope 设置不是“加域名”而是“画语义边界”很多用户在Target → Site map里右键添加目标时只输入https://api.example.com以为这就覆盖了全部。但实际中https://api.example.com/v1/users和https://api.example.com/v2/internal/debug的安全等级天差地别。Burp 的 Scope 机制本质是定义“哪些流量值得被深度分析”。正确做法是在Target → Scope中显式勾选Use advanced scope control点击Add输入正则表达式而非简单 URL✅ 推荐^https?://api\.example\.com/v[1-2]/(?!internal/).匹配 v1/v2 下除/internal/外的所有路径避免扫描调试接口❌ 避免https://api.example.com会匹配到https://api.example.com/internal/healthz且无法排除更进一步可结合Context字段做语义过滤。例如某 SaaS 平台多租户 API 通过X-Tenant-IDHeader 区分客户你只想扫描tenant-a的流量则在Target → Scope → Context中添加规则Header: X-Tenant-IDcontainstenant-a。这样即使同一域名下的tenant-b流量经过 Proxy也不会进入被动扫描队列。2.2.2 扫描规则开关关掉“噪音制造机”打开“业务探测器”Burp 内置被动扫描规则共 214 条v2024.8 版本但其中约 35% 属于“通用型低价值告警”如Cookie without HttpOnly flag无 HttpOnly 的 Cookie现代框架默认开启除非你明确禁用否则纯属干扰Server header contains version informationServer 头含版本号信息泄露类但修复优先级远低于逻辑漏洞Missing X-Frame-Options header缺少 X-Frame-Options已被Content-Security-Policy: frame-ancestors取代。我实测过在扫描一个中型电商后台时全开规则产生 1287 条被动告警其中 912 条是上述三类关闭后剩余 375 条人工复核确认 289 条为真实风险含 3 条越权访问、2 条未授权文件读取。因此我的推荐开关策略是规则类别推荐状态理由认证与会话类如Weak password in login form,Session token in URL✅ 开启直接关联账户安全误报率低API 逻辑类如Insecure direct object reference (IDOR),Missing rate limiting✅ 开启被动扫描可通过响应码/响应体长度差异发现 IDOR加密与传输类如TLS version too old,Weak cipher suite⚠️ 按需开启需配合 TLS 握手日志分析单独看响应无效信息泄露类如Server header version,X-Powered-By header❌ 关闭修复成本低但价值极小挤占有效告警空间前端安全类如Missing CSP header,Unsafe eval() usage⚠️ 仅对 Web 前端开启后端 API 无需关注 CSP操作路径Dashboard → Passive Scan → Options → Rules取消勾选对应规则即可。注意关闭规则不影响主动扫描只影响被动扫描告警生成。2.2.3 插入点提取策略让扫描器“读懂”你的协议这是被动扫描最易被忽视、却影响最大的配置。入口在Dashboard → Passive Scan → Options → Insertion Points。默认设置是“Extract from all locations”即从 URL、Body、Headers、Cookies 等所有位置提取参数。但问题在于它不知道哪些位置是“业务关键参数”哪些是“固定元数据”。以一个典型的 JWT 认证 API 为例GET /api/v1/orders?statuspending HTTP/1.1 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... X-Request-ID: a1b2c3d4-e5f6-7890-g1h2-i3j4k5l6m7n8statuspending是业务参数应作为插入点Authorization头的 JWT 是加密凭证不应被修改否则请求失败X-Request-ID是追踪 ID格式固定无注入风险。但默认配置下Burp 会把Authorization值的 Base64 解码后当作普通字符串尝试注入如在ey...中插; DROP TABLE导致请求 401且污染扫描日志。解决方案禁用高风险位置的自动提取改用白名单模式。步骤在Insertion Points选项卡取消勾选Extract from headers和Extract from cookies勾选Extract from URL query string和Extract from request body点击Add手动添加白名单插入点Location:URL query stringParameter name:statusParameter type:StringContext:All requests to https://api.example.com/api/v1/.*这样被动扫描只会在/api/v1/路径的 URL 查询参数中提取status其他位置一律忽略。实测效果某金融 API 的被动扫描告警量下降 63%但高危逻辑漏洞检出率提升 22%因减少了无效请求对真实流量的干扰。2.3 被动扫描的实战陷阱与避坑清单我在给三家银行做 API 安全评估时反复踩过这些坑现总结为可立即执行的检查清单陷阱现象根本原因修复操作验证方式被动扫描无告警但手动测试明显存在 XSS目标域名未加入 Scope或 Scope 正则语法错误如忘记转义点号.进入Target → Scope点击Show details查看当前匹配的请求 URL 列表用^https?://[^/]/api/.*替代https://api.example.com发送一个带scriptalert(1)/script的请求观察Dashboard → Passive Scan是否出现Reflected XSS告警大量401 Unauthorized告警刷屏被动扫描尝试修改Authorization头但未配置Session Handling规则更新 Token进入Project options → Sessions → Session Handling Rules添加规则Check if session is valid→Check response for failure message如invalid_token→Run macro调用登录宏刷新 Token在Proxy → HTTP history中找一条 401 请求右键Send to Repeater手动修改Authorization后发送确认是否仍 401若仍 401说明 Token 未自动刷新GraphQL 查询体中的变量未被识别为插入点Burp 默认不解析 GraphQLvariables字段结构进入Extender → Extensions安装官方GraphQL Scanner插件免费启用后在Dashboard → Passive Scan → Options → Insertion Points中勾选Extract from GraphQL variables发送 GraphQL 请求{query:query($id:Int!){user(id:$id)},variables:{id:123}}观察被动扫描是否生成IDOR in GraphQL variable id告警扫描器 CPU 占用持续 95%自定义插入点正则过于宽泛如.*或包含回溯灾难如(a)b进入Dashboard → Passive Scan → Options → Insertion Points检查所有自定义规则的正则用在线工具 regex101.com 测试其性能替换为原子组(?...)或限制量词{1,10}修改正则后重启 Burp用top命令监控java进程 CPU 使用率应稳定在 30% 以下注意被动扫描的“质量”必须在主动扫描前验证。我的标准流程是先让目标应用正常运行 10 分钟模拟用户操作然后检查Dashboard → Passive Scan的Issues数量和分布。如果 10 分钟内仅产生 5 条告警或 80% 告警集中在Information Leakage类别说明被动扫描配置有重大缺陷必须修正后再进行主动扫描。3. 主动扫描不是“暴力穷举”而是基于上下文的风险驱动探测3.1 主动扫描的底层逻辑从“发请求”到“建模型”Burp Suite 的主动扫描Active Scan常被误解为“自动 Fuzzing 工具”但它真正的设计哲学是基于被动扫描构建的上下文模型对每个插入点执行最小化、最精准的探测序列以验证其是否构成可利用风险。其执行流程分为四步目标选择Target Selection从被动扫描的插入点列表中筛选出符合当前扫描策略的候选点如仅选String类型、URL query string位置的参数探测序列生成Payload Generation为每个候选点按预设顺序加载探测 payload如先发 SQLi 基础 payload再发 Blind SQLi 时间延迟 payload最后发 Error-based payload响应差异分析Response Analysis对比原始响应与 payload 响应在 7 个维度上计算差异度响应状态码变化如 200 → 500响应长度变化如 1234 → 12345响应时间变化如 120ms → 3200ms响应体文本相似度Levenshtein 距离响应头变化如新增X-Debug: trueHTML 结构变化DOM 树节点增减错误关键词匹配如SQL syntax error风险判定Risk Assessment综合以上差异结合 payload 类型给出High/Medium/Low/Informational四级风险评级。关键洞察主动扫描的准确率70% 取决于被动扫描提供的插入点质量20% 取决于 payload 序列的合理性仅 10% 取决于扫描器自身的算法。这就是为什么跳过被动扫描直接开主动扫描往往得到一堆“疑似 SQLi”却无法复现的告警——因为插入点本身就不在业务逻辑的关键路径上。3.2 扫描策略配置拒绝“全量扫描”拥抱“精准打击”Burp 主动扫描策略入口在Dashboard → Active Scan但核心配置在Project options → Spider和Project options → Scanner。以下是经我实测验证的黄金配置组合3.2.1 扫描范围控制用“路径白名单”替代“域名黑名单”默认的主动扫描会遍历整个 Scope 域名下的所有路径但现实中/api/v1/login和/static/js/app.js的风险等级完全不同。我的做法是在Project options → Spider → Scope中禁用Include all child resources手动添加精确路径白名单https://api.example.com/api/v1/usershttps://api.example.com/api/v1/ordershttps://api.example.com/api/v2/products对每个路径设置Scan only this folder and its subfolders。这样扫描器只会针对这三个业务核心路径发起请求跳过/docs/、/healthz、/metrics等运维接口。实测某政务系统全路径扫描耗时 47 分钟产生 213 条告警其中 189 条为/healthz的 200 响应误判路径白名单扫描耗时 8 分钟产生 24 条告警100% 为真实业务接口风险。3.2.2 插入点类型精筛只扫“可能被污染”的位置在Project options → Scanner → Active scanning中Insertion points设置决定扫描器从哪里发起探测。默认全选但这是效率杀手。我的推荐组合插入点位置推荐状态理由典型场景URL query string✅ 必开GET 参数最易受污染且无需构造复杂请求体/api/v1/users?id123Request body✅ 必开POST/PUT/PATCH 的 JSON/XML/FormData 是主要攻击面{name:test,email:testexample.com}HTTP headers⚠️ 按需开仅开启X-Forwarded-For、User-Agent、Referer等可伪造 Header测试 IP 伪造、UA 注入Cookies❌ 关闭现代应用 Cookie 多为 HttpOnly 加密修改即失效sessionabc123; csrftokendef456Multipart form data✅ 开仅对文件上传接口文件名、文件内容、表单字段均可能注入input typefile nameavatar特别提醒永远不要开启URL filename。Burp 会尝试在 URL 路径末尾添加.php.bak、.git/config等后缀探测备份文件这极易触发 WAF 的路径遍历规则导致 IP 被封禁。真实业务中99% 的备份文件泄露源于开发人员误传而非路径猜测。3.2.3 Payload 序列优化砍掉 60% 的无效探测Burp 内置 12 类主动扫描 payloadSQLi、XSS、OS Command、LDAP、XPath 等每类含 50~200 个具体 payload。全量执行不仅慢还易被 WAF 拦截。我的裁剪原则是按业务技术栈裁剪若后端是 Node.js MongoDB关闭Oracle SQL injection、Microsoft SQL Server injection等无关 payload 组若前端是 React CSR关闭Stored XSS in HTML context服务端不渲染 HTML若 API 全部使用 JWT关闭CSRF token not validatedJWT 本身无 CSRF 问题。按风险等级分层执行在Project options → Scanner → Active scanning → Payloads中将 payload 分为三级Level 1快速验证仅 5 个基础 payload如 OR 11--、img srcx onerroralert(1)用于 10 秒内快速确认是否存在基础注入Level 2深度探测30 个针对性 payload如基于time.sleep(5)的 Blind SQLi、基于fetch()的 DOM XSS用于 Level 1 确认为真后深入验证Level 3绕过测试10 个 WAF 绕过 payload如%20OR%2011--、scrscriptiptalert(1)/scrscriptipt仅在确认目标有 WAF 时启用。操作路径Project options → Scanner → Active scanning → Payloads → Payload generation点击Edit删除不需要的 payload 组。实测某社交 APP全 payload 扫描耗时 32 分钟Level 12 组合仅需 4.5 分钟检出率无差异因 Level 3 的绕过 payload 在无 WAF 时全失败。3.3 主动扫描的致命误区与实战对策以下是我在红队演练中总结的 4 个高频致命误区每个都附带可立即落地的对策3.3.1 误区一“扫描速度越快越好” → 导致 WAF 拦截、请求丢包、漏报飙升现象将Threads调至 20Request per second设为 50扫描启动 2 分钟后Burp 日志显示Connection refused目标服务器返回429 Too Many Requests。真相WAF如 Cloudflare、AWS WAF的速率限制策略通常基于IPUser-AgentPath三元组。Burp 默认 User-Agent 是Mozilla/5.0 (Burp Suite)极易被识别为扫描器。高并发请求会瞬间触发阈值。对策模拟真实用户行为而非机器压测。在Project options → Connections → Incoming requests中设置Maximum number of concurrent requests 2在Project options → Connections → Outgoing requests中设置Threading→Number of threads 3在Project options → Connections → HTTP中勾选Use browser user-agent strings并添加 3 个真实 UAMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Safari/605.1.15 Dalvik/2.1.0 (Linux; U; Android 13; SM-S901B Build/TP1A.220624.014)在Project options → Scanner → Active scanning中启用Delay between requests 800ms模拟用户思考间隔。效果某电商网站 WAF 误拦截率从 92% 降至 3%扫描成功率从 17% 提升至 89%。3.3.2 误区二“所有告警都要人工复核” → 导致时间浪费、重点遗漏现象扫描完成生成 156 条High级告警逐条用 Repeater 验证3 小时后发现 142 条是400 Bad Request或500 Internal Server Error仅 14 条为真实漏洞。真相Burp 的风险评级基于统计学模型而非 100% 确认。High仅表示“该插入点在多个 payload 下表现出显著响应差异”不等于“已确认可利用”。对策建立三级复核漏斗聚焦高价值线索。第一级自动过滤在Dashboard → Active Scan中右键告警 →Filter issues设置Status≠False positiveSeverityHighorCriticalConfidenceCertainorFirmIssue detailcontainsresponse time increased by more than 2000ms时间盲注特征第二级批量验证选中过滤后的告警右键Send to Intruder用Sniper模式发送 3 个 payload OR 11--、 AND SLEEP(5)--、scriptalert(1)/script观察响应时间/状态码第三级手工确认仅对 Intruder 返回200且响应时间 3000ms 的请求用 Repeater 手工构造 PoC。实测156 条告警经三级过滤后仅剩 7 条需手工验证平均每人小时产出从 2.3 个漏洞提升至 8.6 个。3.3.3 误区三“扫描器能发现所有逻辑漏洞” → 忽略业务语义鸿沟现象对/api/v1/transfer?from1001to1002amount100扫描Burp 报告IDOR in from parameter但实际from是用户自己的账户 ID无法越权。真相Burp 的 IDOR 检测基于“相同请求结构下修改参数值导致响应变化”但它无法理解from1001是当前登录用户的 ID而from1002是他人 ID。这需要业务上下文知识。对策用自定义插入点 业务规则补全语义。在Dashboard → Active Scan → Options → Insertion Points中为/api/v1/transfer添加自定义插入点Location:URL query stringParameter name:toContext:Only when from equals current user ID此为伪代码实际需配合 Session Handling在Project options → Sessions → Session Handling Rules中添加规则Rule action:Set macro→Run macro→Get current user ID from /api/v1/profileRule action:Add custom header→X-Current-User-ID: {macro_result}这样扫描器在探测to参数时会确保from始终为当前用户 ID从而精准定位真正的越权点。该方案已在 3 个金融项目中验证有效。3.3.4 误区四“一次扫描定终身” → 忽略动态业务变更现象月初扫描报告无高危漏洞月底上线新功能后未重新扫描导致新接口POST /api/v2/ai/chat的 prompt 注入漏洞未被发现。真相API 接口是活的不是静态资产。新功能、新参数、新认证方式都会引入新攻击面。对策建立“扫描即代码Scan-as-Code”流水线。将 Burp 扫描配置导出为burp-config.json路径Project options → Import / export project options在 CI/CD 流程中用burpsuite-pro --project-fileproject.burp --scan-targethttps://staging.example.com/api/v2/ai/chat --config-fileburp-config.json命令行启动扫描扫描结果输出为scan-report.xml用脚本解析若severityHigh数量 0则阻断发布。我们为某 SaaS 客户实施后新功能上线漏洞平均发现时间从 17 天缩短至 22 分钟。4. 自定义插入点让扫描器从“工具”升级为“业务伙伴”4.1 为什么默认插入点永远不够用Burp Suite 的默认插入点提取逻辑是基于 RFC 标准和常见 Web 框架设计的。它能完美处理GET /search?qtestsortpricePOST /login application/json {username:a,password:b}GET /api/users/123 Accept: application/json但它对以下现代 API 架构束手无策架构类型默认行为业务影响示例GraphQL将整个{query:...,variables:{id:123}}当作一个 Body 字符串无法识别variables.id为独立插入点漏扫 IDOR{query:query($id:Int!){user(id:$id)},variables:{id:123}}gRPC-Web将 Protobuf 序列化后的二进制 Body 当作不可解析字节流完全无法提取字段主动扫描失效0a 03 75 73 65 12 03 31 32 33nameuse, id123WebSocket仅捕获握手请求HTTP Upgrade忽略后续帧无法扫描实时通信中的命令注入{type:command,payload:ls -la}JWT 透传将Authorization: Bearer xxx的 Base64 解码后全文扫描在加密部分插入 payload 导致 JWT 无效产生海量 401eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...根本原因在于默认插入点是“语法层面”的而业务安全是“语义层面”的。variables.id的语义是“用户查询的目标 ID”gRPC 的 field_2的语义是“操作指令”WebSocket 帧中的 payload的语义是“执行命令”。要让扫描器理解这些必须用自定义插入点为其注入业务知识。4.2 自定义插入点的三种实现方式从简单到深度Burp 提供三种自定义插入点途径适用不同复杂度场景4.2.1 方式一GUI 白名单适合 REST/GraphQL这是最轻量、最安全的方式适用于 80% 的现代 API。操作路径Dashboard → Active Scan → Options → Insertion Points → Add。关键字段详解Location: 插入点所在位置URL query string、Request body、HTTP headersParameter name: 参数名支持正则如^id$|^user_id$Parameter type: 数据类型String、Integer、Boolean影响 payload 选择Integer 类型不会发 XSS payloadContext: 作用域限定All requests、Only requests to specific URL、Only requests matching regexEnabled: 是否启用。实战案例为 GraphQL API 添加variables.id插入点。Location:Request bodyParameter name:variables\.(id|userId|account_id)Parameter type:IntegerContext:Only requests to https://api.example.com/graphqlEnabled: ✅Burp 会自动解析 JSON Body定位到variables对象下的id字段并将其作为独立插入点。无需写代码5 分钟内完成。4.2.2 方式二扩展插件适合 gRPC/WebSocket当 GUI 无法满足时必须用 Java/Python 扩展。Burp 官方提供IBurpExtender和IExtensionHelpers接口。以 gRPC-Web 为例其请求体是 Protobuf 序列化后的二进制需解析 Protobuf Schema.proto文件识别字段类型string、int32、repeated对string字段注入 XSS payload对int32字段注入 SQLi payload。我开发的gRPC-Scanner插件核心逻辑public class CustomInsertionPoint implements IScannerInsertionPoint { private final IHttpRequestResponse baseRequestResponse; private final byte[] originalRequest; private final ListString stringFields; // 从 .proto 解析出的 string 字段名列表 Override public String getInsertionPointName() { return gRPC String Field; } Override public ListPayloadData getPayloads() { ListPayloadData payloads new ArrayList(); for (String field : stringFields) { payloads.add(new PayloadData( field injected)); payloads.add(new PayloadData(scriptalert(1)/script)); } return payloads; } Override public byte[] buildRequest(byte[] payload) { // 1. 反序列化原始 protobuf // 2.

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

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

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…