程序员茄子
全部
编程
代码
资讯
案例
综合
联系我们
软件定制开发/软件按需定制 技术文章
php
mysql
shell
go
vue
css
api接口对接
支付接口对接
钉钉机器人 webhook 接入:加签在 URL query,Outgoing 在 HTTP header,310000 怎么查
编程
钉钉机器人 webhook 接入:加签在 URL query,Outgoing 在 HTTP header,310000 怎么查
2026-11-07 21:33:16
钉钉群机器人发告警时,主动发送的 timestamp/sign 拼在 URL query,Outgoing 接收消息的签名却在 HTTP header,写反了只会拿到 310000。这篇记录了加签三步(毫秒时间戳、HMAC key 是 secret、Base64 后必须 urlEncode)、20 条/分钟限流的合并做法、310000 四种 errmsg 的排查顺序,以及三种安全设置怎么选。
钉钉
webhook
接口对接
告警
Go
yansongda/pay 3.x 一个 SDK 接完微信支付宝:证书配置、callback 边界与金额单位
代码
yansongda/pay 3.x 一个 SDK 接完微信支付宝:证书配置、callback 边界与金额单位
2026-11-07 21:32:19
PHP 项目同时接微信和支付宝时,yansongda/pay 3.x 能省掉两套签名验签代码,但配置结构与回调边界容易误判:支付宝三张证书各管什么、微信平台公钥为什么建议落盘、callback() 只验签不校验金额、微信按分支付宝按元的单位差异,以及什么时候自己封装更划算。
PHP
支付
微信支付
支付宝
SDK
数组
Vue 3.6 Vapor 下 slots.default() 会真的渲染插槽:判空写法与兼容性边界
代码
Vue 3.6 Vapor 下 slots.default() 会真的渲染插槽:判空写法与兼容性边界
2026-11-07 21:06:24
Vue 3.6 Vapor 里 slots.default() 不是只读探测:调用会执行插槽渲染、创建 DOM 与响应式副作用,hydration 时还会认领 SSR 节点。给出官方反例、用 <slot>默认内容</slot> 的替代写法,以及 Vapor 下 getCurrentInstance、模板 ref、globalProperties 等边界清单。
Vue
组件
Vapor
数组
PHP 8.6 把 php://filter 过滤器链限制到 16 个:未设上限会发弃用提示,显式设置后超限直接打开失败
编程
PHP 8.6 把 php://filter 过滤器链限制到 16 个:未设上限会发弃用提示,显式设置后超限直接打开失败
2026-11-07 21:05:38
PHP 8.6 给 php://filter 的过滤器链加了默认 16 个上限:未配置 filter.max_filter_count 时超限发弃用提示,显式设置后超限直接打开流失败。给出 stream_filter_append 与 context 选项两种替代写法、read/write 分别计数的注意点,以及把这条 deprecation 当攻击信号的用法。
PHP
安全
文件流
Go 1.28 把 string(整数) 改成编译错误:string(65) 不再等于 "A"
编程
Go 1.28 把 string(整数) 改成编译错误:string(65) 不再等于 "A"
2026-11-07 21:03:52
Go 1.28 收紧 string(x) 规则(#3939):x 是整数时只有 byte / rune 类型或无类型 rune 常量才允许,string(uid)、string(resp.StatusCode) 这类写法直接编译不过。给出 strconv 替换、允许保留的写法,以及先用 go vet 的 stringintconv 批量定位的迁移顺序。
Go
编译
类型转换
编译错误
微信支付回调 event_type 从 32 扩到 128:你的 VARCHAR(32) 不会自己变长
代码
微信支付回调 event_type 从 32 扩到 128:你的 VARCHAR(32) 不会自己变长
2026-11-07 21:03:13
微信支付 2026-11 把三个回调通知的 event_type 长度从 32 扩到 128(商家转账、会员卡、商品券)。落库列宽、JSON maxLength、枚举白名单都不会自动跟着变:严格模式报 1406,非严格模式静默截断后幂等键会折叠事件。附表结构、分发代码与以通知 id 去重的做法。
微信支付
回调
接口对接
nginx 1.31.8:working_directory 的相对路径不再跟着启动目录走
编程
nginx 1.31.8:working_directory 的相对路径不再跟着启动目录走
2026-11-07 21:02:27
nginx 1.31.8 起 working_directory 的相对路径按 prefix 解析,不再跟着启动时的当前目录走;指向无效目录时 worker 会在启动或 reload 阶段退出。给出 prefix 确认、绝对路径改法、cwd 验证命令与 systemd 单元示例。
nginx
运维
systemd
PHP 8.6:finally 里写 return 会丢掉异常,编译期就报弃用
编程
PHP 8.6:finally 里写 return 会丢掉异常,编译期就报弃用
2026-11-07 21:01:48
PHP 8.6 将在 finally 块里 return 标为弃用,且是编译期 deprecation:它会让 try 抛出的异常静默消失,调用方只拿到兜底值。给出错误写法、两种正确改法与 grep / php -l / PHPStan 的排查方式,PHP 9.0 将升级为错误。
PHP
异常处理
代码审查
MySQL 9.7.0 级联删除会触发子表触发器了,默认关,而且只按会话算
编程
MySQL 9.7.0 级联删除会触发子表触发器了,默认关,而且只按会话算
2026-11-07 21:01:19
MySQL 9.7.0 新增 enable_cascade_triggers,默认 OFF:外键 CASCADE / SET NULL 引发的子表变更默认不激活子表触发器。它是会话级变量,连接池里必须逐条连接开启;开启后触发器报错会连同级联变更一起回滚。附 row 与 statement 复制格式的差异和排查顺序。
MySQL
触发器
外键
Zabbix 8.0 升级踩点:Allow list 空着从「放行」变「全禁」,HTTP 模板默认校验 TLS
资讯
Zabbix 8.0 升级踩点:Allow list 空着从「放行」变「全禁」,HTTP 模板默认校验 TLS
2026-11-07 20:04:29
Zabbix 8.0.0 从 7.4.x 升级前必须核对的破坏性变更:ES 低于 8 直接起不来、MySQL 门槛抬到 8.4、roles 的空 Allow list 语义反转、HTTP 模板与 webhook 默认校验 TLS、一批宏被移除。
Zabbix
监控
运维
升级
OpenTelemetry
支付宝退款返回 10000 就标「已退款」:fund_change、退款查询与 out_request_no 的判定链
代码
支付宝退款返回 10000 就标「已退款」:fund_change、退款查询与 out_request_no 的判定链
2026-11-07 09:01:23
支付宝退款接口 code=10000 只代表请求受理。本文给出 code→fund_change→退款查询的判定链,说明部分退款漏传 out_request_no 会报 REFUND_AMT_NOT_EQUAL_TOTAL、重试同号返回 fund_change=N、退款查询传错请求号静默返回空明细,并附错误码分诊表、重试间隔与本地状态机建议。
支付宝
退款
支付接口
幂等
异步通知
同一个 DELETE,changes() 返回 1,total_changes 涨了 3
编程
同一个 DELETE,changes() 返回 1,total_changes 涨了 3
2026-11-07 00:05:59
RowsAffected 到底数了什么:SQLite 的 sqlite3_changes 只算语句直接改的行,total_changes 连触发器程序和外键级联一起算,却不含 REPLACE 消解。给出五个可复现探针,以及触发器内读 changes() 的保存/恢复陷阱、INSTEAD OF 视图恒为 0、expo-sqlite 与 bun 的真实踩坑,最后说明判「命中」与判「真变」为什么必须分开。
RowsAffected
SQLite
影响行数
触发器
外键级联
Go
数据库
mailq 里一堆 deferred 不是卡住:Postfix 的 300s/4000s 退避与 relayhost 单点吞吐
编程
mailq 里一堆 deferred 不是卡住:Postfix 的 300s/4000s 退避与 relayhost 单点吞吐
2026-11-07 00:04:42
mailq 里 deferred 邮件的重试时间戳总在往后跳,多半是 4xx 指数退避而不是队列卡住。整理 Postfix 2.4 起的默认值(queue_run_delay/minimal_backoff_time 各 300s、maximal_backoff_time 4000s、maximal_queue_lifetime 5d)、dead 目的地判定(failed_cohort_limit 默认 1、只算连接与握手失败)、relayhost 单点的吞吐算术,以及 transport 分 lane 的参数覆盖写法与排查命令。
Postfix
邮件队列
qmgr
relayhost
邮件服务器
退避
wget 遇 503 不进重试直接退出码 8:-t 20 只管网路中断,--retry-on-http-error 要自己开
编程
wget 遇 503 不进重试直接退出码 8:-t 20 只管网路中断,--retry-on-http-error 要自己开
2026-11-07 00:04:32
wget 默认 -t 20 只重试连接中断和读超时,HTTP 503/429 会直接以退出码 8 结束,日志里连 Retrying. 都没有。这篇按手册核对重试边界:--waitretry 线性退避默认 10 秒、read timeout 默认 900 秒、--retry-on-http-error 从 1.19.1 才有且官方不推荐,并给出退出码 0-8 的分支判断、-c 与 -O 共用会截断文件的原因,以及可直接抄的 flock + sha256sum 脚本。
wget
Shell
运维
下载工具
CodeQL 报 No code found during the build:exit 32 多半是构建缓存命中,编译器一次都没被调用
编程
CodeQL 报 No code found during the build:exit 32 多半是构建缓存命中,编译器一次都没被调用
2026-11-07 00:04:27
构建步骤成功、CodeQL analyze 却报 No source code was seen during the build / exit 32,根因常常是 Gradle、Bazel、dotnet 的构建缓存命中,编译器整场缺席,tracer 抽到 0 个文件。给出 debug-artifacts、build-tracer.log、src.zip 对比、本地建库四步排查,以及手动构建与 build-mode: none 两种修法的取舍。
代码扫描
SAST
CodeQL
静态分析
GitHub
Actions
CI
MySQL GET_LOCK 排查:metadata_locks 里 OWNER_THREAD_ID 不是连接 ID,重复取锁也不加行
编程
MySQL GET_LOCK 排查:metadata_locks 里 OWNER_THREAD_ID 不是连接 ID,重复取锁也不加行
2026-11-07 00:04:16
MySQL 5.7.5 起 GET_LOCK 由 MDL 实现,用户锁在 performance_schema.metadata_locks 里 OBJECT_TYPE='USER LEVEL LOCK'、LOCK_DURATION='EXPLICIT'。给出按名字查持有者与 PENDING 等待者的 SQL、OWNER_THREAD_ID 经 threads 换 PROCESSLIST_ID 才能 KILL 的原因、递归取锁只留一行的计数语义,以及超时返回 0 / 出错返回 NULL、3058 不回滚事务、@@lock_wait_timeout 无效的边界。
advisory-lock
MySQL
咨询锁
performance_schema
MDL
锁排查
Uncloud v0.22 部署笔记:没有控制面,用 WireGuard mesh 和 CRDT SQLite 管 Docker 集群
编程
Uncloud v0.22 部署笔记:没有控制面,用 WireGuard mesh 和 CRDT SQLite 管 Docker 集群
2026-11-06 21:32:10
Uncloud 用 WireGuard mesh 加 CRDT SQLite(corrosion)在多台 Docker 主机间同步集群状态,没有控制面和 quorum。笔记给出 uc machine init / uc run -p 域名:端口/https 的可复现步骤,讲清 gRPC over SSH、Caddy global 模式做 ingress、unregistry 直推镜像,并记录 v0.22.0 的原地改资源限制、uc image rm、m.internal DNS,以及 caddy deploy 会重签证书与机器名必须是 DNS label 两个升级坑。
docker
部署
运维
Go
NGINX upstream keepalive 实测:配了 keepalive 16,后端连接数仍是 15557 条
综合
NGINX upstream keepalive 实测:配了 keepalive 16,后端连接数仍是 15557 条
2026-11-06 21:31:05
NGINX 只写 keepalive 16 不会复用连接:给出 upstream keepalive + proxy_http_version 1.1 + 清空 Connection 头三段式配置,并用四组对照压测说明半配置为何会静默产生 8 千多次 prematurely closed、端口耗尽的 [crit] 报错为何被 grep 漏掉,以及如何用 ss 和 upstream_connect_time 验证复用真的生效。
nginx
运维
反向代理
502
别用 overrides 把 rolldown 1.3.0 塞进 Vite 8.3.6:它锁着版本,HMR 与构建会踩空
代码
别用 overrides 把 rolldown 1.3.0 塞进 Vite 8.3.6:它锁着版本,HMR 与构建会踩空
2026-11-06 21:07:17
Rolldown 1.3.0 官方提醒别用 overrides/resolutions 强塞进 Vite:Vite 8.3.6 及更早需要改动才能配合,版本是锁死的。本文说明锁版本背后的 lockstep 假设、overrides 如何污染 lockfile、先升 Vite 再升 rolldown 的顺序、三包管理器自检命令,以及实验性 import attributes 的隔离做法。
Vite
Rolldown
前端构建
依赖管理
OpenSSL 4.0 的十六进制输出变了两处:去掉多余的 00: 前缀,dump 宽度改成 24/16 字节
综合
OpenSSL 4.0 的十六进制输出变了两处:去掉多余的 00: 前缀,dump 宽度改成 24/16 字节
2026-11-06 21:07:07
OpenSSL 4.0 改了十六进制打印:最高字节 >= 0x80 时不再多打 00:,dump 宽度统一为签名 24 字节、其它 16 字节。靠 grep ^00:、按列宽 cut 或按行数拼 hex 的脚本会静默错位。含两版本 diff 复现、指纹与 DER 比对替代方案、多行输出聚合写法与升级自检清单。
OpenSSL
Shell
运维
证书
OpenSSL 4.0 把 SM2 的默认区分标识符改成 1234567812345678:老签名的国密验签会突然不通过
代码
OpenSSL 4.0 把 SM2 的默认区分标识符改成 1234567812345678:老签名的国密验签会突然不通过
2026-11-06 21:05:13
OpenSSL 4.0 把 SM2 签名的默认区分标识符从空串改成 1234567812345678,导致存量国密签名验不过而证书链看起来完全正常。本文解释 distid 如何进入 Z 值与摘要、给出 3.x 与 4.0 交叉验签的复现命令、distid: 空值的两种命令行写法,以及应用层显式设置的建议。
OpenSSL
SM2
国密
签名验签
x509
MySQL 26.10 的 Health Monitor 进了社区版:默认只看不拦,磁盘快满也不会把你踢成只读
编程
MySQL 26.10 的 Health Monitor 进了社区版:默认只看不拦,磁盘快满也不会把你踢成只读
2026-11-06 21:05:06
MySQL 26.10 把 Health Monitor 组件带入社区版:通过 Performance Schema 看磁盘、内存、CPU、进程信息,并给出磁盘容量预测。低磁盘 fencing 默认关闭,意味着它只观察不拦截。本文讲清默认只监控数据目录的盲区、与 mysqld_exporter 的分工、启用 fencing 前要定的策略。
MySQL
运维
监控
容量规划
ALTER TABLE 报 Row size too large 未必是你真的超了:MySQL 9.7.4 把行大小校验退回旧口径
编程
ALTER TABLE 报 Row size too large 未必是你真的超了:MySQL 9.7.4 把行大小校验退回旧口径
2026-11-06 21:04:04
MySQL 9.7.0 的 InnoDB 死锁修复让行大小估算变准,也把 CREATE/ALTER TABLE 的校验改严,存量表定义被拒并报 Row size too large。9.7.4 与 8.4.11 恢复旧校验,但 ALGORITHM=INSTANT 仍走严格算法。含三条快速定性对照、列宽估算 SQL 与处理顺序。
MySQL
InnoDB
DDL
升级迁移
real_escape_string 在双引号里并不安全:PHP 8.6 的 mysqli_quote_string 连引号一起处理
代码
real_escape_string 在双引号里并不安全:PHP 8.6 的 mysqli_quote_string 连引号一起处理
2026-11-06 21:03:56
PHP 8.6 新增 mysqli_quote_string,按连接 SQL 模式选引号样式并包起来。real_escape_string 的输出在双引号里配合 NO_BACKSLASH_ESCAPES 并不安全,本文给出可复现注入样例、quote_string 返回值已带引号别再套一层、标识符仍须白名单,以及 8.5 及以下的自写替代。
PHP
MySQL
SQL注入
安全
大家都在搜索什么?
devops
易支付
一个官网+多少钱
统一接受回调
统一回调
python
sub
node
宝塔日志
mysql
shell
ElasticSearch
css
vue
api接口对接
2025
支付接口对接
go
php
php回调
上一页
1
2
3
4
5
6
7
…
347
下一页
共 347 页
到第
页
确定