程序员茄子
全部
编程
代码
资讯
案例
综合
联系我们
软件定制开发/软件按需定制 技术文章
php
mysql
shell
go
vue
css
api接口对接
支付接口对接
Go 1.28 给子进程加 Landlock:在 fork 与 execve 之间收紧权限
编程
Go 1.28 给子进程加 Landlock:在 fork 与 execve 之间收紧权限
2026-11-09 21:33:17
Go 1.28 把 Landlock 接进 syscall.SysProcAttr:UseLandlock、LandlockFD、LandlockFlags、NoNewPrivs 四个字段在 fork 与 execve 之间生效,只限制子进程,父进程不受影响,os/exec 和 os.StartProcess 都能用。但 Go 只负责应用 ruleset,不负责创建;Landlock 不支持时创建会直接失败,不会静默跳过。文中给出用 x/sys/unix 建 ruleset 并禁掉子进程建目录的可运行示例,以及这种沙箱管不到继承 fd、不替代容器的边界。
Go
Landlock
Linux
沙箱
安全
从 v3 迁到 go-yaml v4:改导入路径只是第一步,缩进和 Node 钩子会先暴露问题
编程
从 v3 迁到 go-yaml v4:改导入路径只是第一步,缩进和 Node 钩子会先暴露问题
2026-11-09 21:31:57
go-yaml v4.0.0 稳定版把 gopkg.in/yaml.v3 送进只收安全修复的状态。迁移时改导入路径只能算第一步:Dump 默认 2 空格缩进加紧凑序列,和 Marshal 的 4 空格输出不等价,要 WithV3Defaults()+WithLineWidth(-1) 才对得上;NewLoader/NewDumper 构造函数会返回 error;用 *yaml.Node 的自定义 UnmarshalYAML 钩子会直接报迁移错误,转换错误也从 *yaml.TypeError 变成 *yaml.LoadErrors。
Go
YAML
go-yaml
迁移
序列化
Redis 8.4.7 起 cluster bus 端口未认证会在启动时告警:先收敛 16379,再决定 protected-mode
编程
Redis 8.4.7 起 cluster bus 端口未认证会在启动时告警:先收敛 16379,再决定 protected-mode
2026-11-09 21:10:50
Redis Cluster 的 bus 端口(6379+10000)只有开 tls-cluster 才有认证,requirepass 管不到它。8.4.7 起节点启动会告警,并新增 cluster-bus-port-protected-mode。文中给 bind 与 nftables 收敛方案、明文集群不能直接设 yes 的顺序,以及 8.4.8 的 bus 溢出修复。
Redis
集群
运维
安全加固
OpenSSH 10.6p2:musl + 关闭 PAM 的构建存在密码绕过,升级后要手动重启 sshd
编程
OpenSSH 10.6p2:musl + 关闭 PAM 的构建存在密码绕过,升级后要手动重启 sshd
2026-11-09 21:09:28
OpenSSH 10.6p2 修的密码认证绕过需要 musl libc 加关闭 PAM 两个条件同时成立,发布时没有 CVE,扫描器可能扫不出来。包升级不会重启守护进程,必须手动 restart;文中给检查构建类型、查 Accepted password 日志、以及关掉密码认证的临时缓解。
运维
OpenSSH
安全补丁
Linux
MySQL 9.7.0 LTS 把 Hypergraph Optimizer 下放到社区版:慢的多表 JOIN 报表可以先在会话级试
编程
MySQL 9.7.0 LTS 把 Hypergraph Optimizer 下放到社区版:慢的多表 JOIN 报表可以先在会话级试
2026-11-09 21:08:09
MySQL 9.7.0 LTS 把 Hypergraph Optimizer 从商业版下放到社区版:传统 left-deep 枚举会漏掉多表 JOIN 的更优计划,超图加动态规划能搜更大空间。文中给 optimizer_switch 会话级开关、EXPLAIN ANALYZE 前后对比流程,以及哪些查询不值得开。
MySQL
查询优化
JOIN
版本升级
PHP 8.6 的 pack()/unpack() 端序修饰符:用 l>、l< 直接指定大小端
编程
PHP 8.6 的 pack()/unpack() 端序修饰符:用 l>、l< 直接指定大小端
2026-11-09 21:06:15
PHP 8.6 给 pack()/unpack() 增加 < 与 > 端序修饰符,可接在 s/S/l/L/q/Q 与 f/d 后面,直接指定小端或大端,不再依赖机器字节序,也不用 strrev 拼 64 位整数和浮点。文中给新旧写法对照与协议头解析示例。
PHP
二进制
网络协议
版本升级
PHP 8.6 的 trim() 默认多剥一个 \f:定宽文本和分页流会静默错位
代码
PHP 8.6 的 trim() 默认多剥一个 \f:定宽文本和分页流会静默错位
2026-11-09 21:04:53
PHP 8.6 起 trim/ltrim/rtrim/chop 的默认字符集多了换页符 \f,不报错不警告,只是返回的字符串短一个字节。定宽解析、打印分页流、按字符数 substr 的代码会静默错位。文中给复现代码与显式传 charlist 的改法。
PHP
字符串处理
版本升级
踩坑
PHP 8.6 收紧了三个 session INI 默认值:代码没动,登录流程先坏了
代码
PHP 8.6 收紧了三个 session INI 默认值:代码没动,登录流程先坏了
2026-11-09 21:03:41
PHP 8.6 把 session.use_strict_mode 改成 1、cookie_httponly 改成 1、cookie_samesite 改成 Lax。自建 SSO 沿用 session id、前端读 document.cookie、跨站 POST 回调这三类会同时出问题。文中给三步排查命令与写死三项配置的迁移做法。
PHP
Session
安全默认值
版本升级
maps.Grow 进了 Go 1.28 草案:给 map 预留容量,少搬几次 bucket
编程
maps.Grow 进了 Go 1.28 草案:给 map 预留容量,少搬几次 bucket
2026-11-09 21:02:59
make(map, n) 的 n 只在创建时生效,已存在的 map 没有预留手段。maps.Grow 已进 Go 1.28 草案,按「还将插入多少项」预分配,减少扩容搬 bucket。文中给合并 http.Header、配置 map 的写法,以及三类没用的场景和内存代价。
Go
性能优化
map
版本前瞻
Go 1.27 的 encoding/json/v2:重复键和非法 UTF-8 从静默通过变成报错
编程
Go 1.27 的 encoding/json/v2:重复键和非法 UTF-8 从静默通过变成报错
2026-11-09 21:02:04
Go 1.27 的 encoding/json/v2 默认拒绝对象内重复键与字符串中的非法 UTF-8,而 encoding/json 底层已换成 v2 实现,行为保留但错误文案变了。文中给对比代码、Options 退回 v1 语义的用法,以及配置合并、旧字段兼容这两类最容易炸的场景。
Go
JSON
版本升级
错误处理
Go 1.27.3 的 LICM 把 unsafe.Pointer 加法提到 if 外,栈增长时撞上 fatal error
编程
Go 1.27.3 的 LICM 把 unsafe.Pointer 加法提到 if 外,栈增长时撞上 fatal error
2026-11-09 20:02:09
golang/go#82865:被 if o != nil 保护的 unsafe.Add 地址计算,被 Go 1.27 新增的 LICM pass 提到 guard 之外并 spill 到栈槽;循环里的调用一旦触发栈增长,栈扫描器看到 0x20 就直接 fatal error: invalid pointer found on stack。根因是 pass 只检查 IsPtr() 而漏掉 TUNSAFEPTR。含 reproducer、六个触发条件与 workaround。
Go
编译器
unsafe
运行时
nginx 补完 CVE-2026-42533 后随机 500:volatile map 嵌套脚本覆盖了全局 buffer end
编程
nginx 补完 CVE-2026-42533 后随机 500:volatile map 嵌套脚本覆盖了全局 buffer end
2026-11-09 20:01:18
AlmaLinux 11 月 4 日官方复盘:nginx 修 CVE-2026-42533 时为了不破 ABI,把缓冲区末尾存在全局变量里,导致 volatile map 的嵌套脚本互相覆盖,单 location 三分之一到一半请求随机 500 并报 no buffer space in script copy。含触发配置、根因、修复方式、2000 请求实测与测试命令。
nginx
运维
漏洞修复
Linux
回调报 For input string "PUB":微信支付把平台证书切公钥,serial 不能当十六进制解析
代码
回调报 For input string "PUB":微信支付把平台证书切公钥,serial 不能当十六进制解析
2026-11-09 09:03:53
微信支付平台证书切成公钥后,回调报 NumberFormatException: For input string "PUB" under radix 16,根因是把 Wechatpay-Serial 当十六进制序列号解析。本文讲清回调 serial 由微信控制、应答 serial 由商户控制,必须按头路由验签,以及两个灰度比例、比例卡在 100% 不到的 SDK 配置原因、切换与平台证书轮换互斥、SIGNTEST 探测流量和回退路径。
微信支付
支付对接
APIv3
证书轮换
验签
PayPal webhook 验签总 FAILURE:raw body、crc32、webhook_id 三处根因与重复发货点
代码
PayPal webhook 验签总 FAILURE:raw body、crc32、webhook_id 三处根因与重复发货点
2026-11-09 09:01:49
PayPal webhook 一直返回 FAILURE,多数不是签名算错:body 被框架解析后重新序列化、crc32 用了十六进制、webhook_id 取自 client_id 或跨环境混用。附带订单与 capture 两个资源导致的重复发货点——事件顺序不保证、capture 幂等头、ORDER_ALREADY_CAPTURED 按成功处理、PENDING 不发货、零小数位币种、25 次/3 天重投与补单接口。
PayPal
支付对接
Webhook
签名验签
出海
restic 仓库校验:check 的两层、抽样读取与修复顺序
编程
restic 仓库校验:check 的两层、抽样读取与修复顺序
2026-11-09 00:05:43
restic check 默认只核对索引与 pack 结构,不读数据本身。本文说明 --read-data 与 --read-data-subset 的 n/t、x%、nS 三种抽样写法,check 独占锁对备份窗口的影响、/tmp 缓存落到 tmpfs 的风险,以及 repair index → 重跑备份 → repair snapshots 的修复顺序。
restic
备份恢复
运维实战
空回滚的判定:查不到 Try 记录,不等于 Try 没执行
编程
空回滚的判定:查不到 Try 记录,不等于 Try 没执行
2026-11-09 00:05:03
一次 Cancel 进来怎么判断它是不是空回滚:SELECT 查不到 Try 记录只能证明此刻这行不存在,不能证明 Try 不会再来。文中拆开「先查后改」的竞态窗口(Try 查完无记录→进程暂停→全局超时判空补偿→Try 恢复提交→悬挂),说明 SELECT FOR UPDATE 在行尚未插入时锁不住什么,判据必须落在写上;对照 DTM 子事务屏障的两条 insert ignore(cancel 代插 try 记录)与 Seata tcc_fence_log 的 status=4 是同一断言;给出两侧排查 SQL、清理窗口短于重试窗口会重新判成空回滚的坑,以及对账口径。
空回滚
TCC
分布式事务
DTM
Seata
悬挂
幂等
restic 报 repository is already locked:锁文件、stale 判定与 unlock 的边界
编程
restic 报 repository is already locked:锁文件、stale 判定与 unlock 的边界
2026-11-09 00:04:46
restic 报 repository is already locked 时,先看 locks/ 里的锁文件:hostname、pid、time 决定它是不是 stale。本文按源码给出 30 分钟阈值、5 分钟刷新、独占与非独占的划分、unlock 与 --remove-all 的安全边界,以及容器主机名和 0.18.0 在 CIFS 上的 chmod bug。
磁盘快照与增量备份
prune
小程序图片上传失败排查:用 code=400 分布和 route_name 收敛到微信基础库灰度
案例
小程序图片上传失败排查:用 code=400 分布和 route_name 收敛到微信基础库灰度
2026-11-09 00:04:34
一次持续三天、10 多人参与的小程序上传图片失败排查:如何用差异对比先切责任段(用户侧/运营商链路/Kong/后端),再用 code=400 占比与 route_name 分布把范围收敛到终端,最终定位到微信基础库灰度;含日志维度设计、trace_id 透传与 SLI 阈值取舍。
排障案例
故障排查
小程序
Kong
可观测性
tbls 接进 CI:diff 只比 Markdown,删表残留与 SVG 噪音是两个真坑
编程
tbls 接进 CI:diff 只比 Markdown,删表残留与 SVG 噪音是两个真坑
2026-11-09 00:03:56
把 tbls 接进 CI 后最容易忽略的三处判定:tbls diff 只对比 Markdown 文档、--force 不删除已删表遗留的 md(要 --rm-dist 才闭合)、ER 图默认 svg 让 git diff 变成噪音。附 lint 依赖数据库注释、SQL Server 兼容级别 110、json:// 离线生成等实测口径。
tbls
数据库文档
CI
Go
MySQL
PostgreSQL
pg_trgm 索引建了却没生效:几种写法与对应的排查点
编程
pg_trgm 索引建了却没生效:几种写法与对应的排查点
2026-11-09 00:03:40
pg_trgm 的 GIN/GiST 索引建好后 ILIKE、% 仍走 Seq Scan 的四种原因:citext 列使 ILIKE 落到另一套操作符、用 similarity()/word_similarity() 代替操作符、距离操作符方向与 boolean 限制、查询串变长导致 gincostestimate 把索引判贵。附官方文档的 trigram 提取规则、GiST/GIN 分工与排查顺序。
trigram
PostgreSQL
pg_trgm
索引
模糊搜索
一千个 agent 同时 push:Aspen 把 Git 服务端从磁盘目录换成 Postgres + 对象存储
资讯
一千个 agent 同时 push:Aspen 把 Git 服务端从磁盘目录换成 Postgres + 对象存储
2026-11-08 21:31:15
经典 Git 服务器在 agent 群并发推送下会卡在锁和重复打包上。本文拆解 Aspen(Apache-2.0,pre-alpha)的设计:分支在 Postgres 里各一行、靠 compare-and-swap 移动,push 的 pack 原样进对象存储、fetch 直接拼发现成的包。附放弃全分支快照的代价、push 只见 trunk 带来的 -o force 差异、567 push/s 测试条件、源码构建命令与已知限制清单。
Git
Rust
PostgreSQL
自托管
Go 1.28 的复合字面量类型省略:整个字面量的类型开始由目标类型推断
编程
Go 1.28 的复合字面量类型省略:整个字面量的类型开始由目标类型推断
2026-11-08 21:07:35
Go 1.28 把复合字面量的类型省略从元素位置扩展到由目标类型推断整个字面量:函数调用实参、append/copy/delete、switch 都进入范围,两侧都不是 typed 的比较仍退回旧机制。文中按 CL 列出覆盖面,以及工具链、gopls 与代码生成器需要同步升级的原因。
Go
语言特性
工具链
Docker Engine 29:最低 API 版本抬到 v1.44,读取 /events 的脚本需要修改字段名
综合
Docker Engine 29:最低 API 版本抬到 v1.44,读取 /events 的脚本需要修改字段名
2026-11-08 21:06:18
Docker Engine 29 把 daemon 最低 API 版本抬到 v1.44,客户端也不再向更低版本协商,固定写版本号的旧客户端会被拒。GET /events 在 API 1.52 起省略 status/id/from,需要改用 Type/Action/Actor。文中给查询命令、字段对照表和同版本其他 API 移除项。
Docker
运维
接口对接
systemd v259 把 journal 默认存储改成 persistent:小盘、容器、只读根分区各会怎样
综合
systemd v259 把 journal 默认存储改成 persistent:小盘、容器、只读根分区各会怎样
2026-11-08 21:06:18
systemd v259 把 journal 默认存储从 auto 改成 persistent,以前只看 /var/log/journal 在不在,不在就写 tmpfs 重启即丢。本文讲清小盘机器、容器、只读根分区三种场景的实际后果,给出 Storage= 与 SystemMaxUse/RuntimeMaxUse 的配置写法与核对命令。
Linux
systemd
运维
大家都在搜索什么?
devops
易支付
一个官网+多少钱
统一接受回调
统一回调
python
sub
node
宝塔日志
mysql
shell
ElasticSearch
css
vue
api接口对接
2025
支付接口对接
go
php
php回调
上一页
1
2
3
4
5
6
7
…
349
下一页
共 349 页
到第
页
确定