这里是全站文章的归档入口,下面是按时间倒序排列的全部文章。若想按主题浏览,请从首页的专题分类进入。
《Go 语言编程实战》17.3 审计与合规
审计日志回答的是「谁在什么时候对什么做了什么」,而它本身也是攻击目标。本节把 TaskHub 的审计落成防篡改的哈希链:本机真实跑通写入 3 条记录校验通过,再改写第 2 行结果字段,校验立刻报「第 2 行内容被篡改」;并给出审计与业务日志的分离、保留期与合规映射。
posts
这里是全站文章的归档入口,下面是按时间倒序排列的全部文章。若想按主题浏览,请从首页的专题分类进入。
审计日志回答的是「谁在什么时候对什么做了什么」,而它本身也是攻击目标。本节把 TaskHub 的审计落成防篡改的哈希链:本机真实跑通写入 3 条记录校验通过,再改写第 2 行结果字段,校验立刻报「第 2 行内容被篡改」;并给出审计与业务日志的分离、保留期与合规映射。
加密的目标是「数据即使被截获或拖库也读不出」。本节把 TaskHub 的传输与存储两条链路都落成可运行代码:用真实握手演示强制 TLS 1.3 如何拒绝只支持 1.2 的客户端,用 AES-GCM 把 32 字节明文加密成 60 字节并验证篡改必然失败,用 bcrypt 演示同口令两次哈希不同、校验正确。
多租户系统里,一个没校验的查询参数就可能让 A 租户读到 B 租户的数据。本节用真实 Postgres 容器跑通两段对照实验:字符串拼接的查询被注入读到 2 行(越权),参数化查询命中 0 行(挡下);再用 html/template 演示输出转义,并给出白名单校验、命令注入与路径穿越的防护清单。
给出 Spring Boot 4 模块化重构的动因与全貌:从单一 spring-boot-autoconfigure 大 jar 拆成按技术划分的模块、根包与 starter 命名约定、starter 改名对照、Flyway/Liquibase 新增 starter,以及 Jackson 3 与 Jakarta EE 11 基线对依赖声明和 import 语句的实际影响。
本节为图书服务建立生产可用的日志基线:讲清 SLF4J 门面与 Logback 实现的分工,以及为什么不要直接依赖 Log4j2 API;给出六个级别的选择依据与 logging.level.<包名> 的精确控制;解读 4.1.1 的真实启动日志;讲透 logging.file.name 与 path 的差别、轮转配置、4.1 的 Log4j 文件轮转与 logging.group 分组。
《Python高级编程》全书导航页:说明高级卷在 Python 三卷体系中的定位、读者画像与前置知识,梳理 11 章从对象模型到生态演进的纵深线,并按章列出全部 33 节的完整索引,另交代全书 3.14.6 实测口径、两条阅读路径与延伸阅读方向,帮你从会用走到懂原理。
从 PEP 的状态机讲起,用 __future__ 与 warnings.deprecated 实测弃用周期,再用 sys.version_info、requires-python 与 CI 矩阵搭特性检测;最后逐条实测 3.14 的迁移点:PEP 649 注解延迟、PEP 765 finally 控制流、PEP 784 compression.zstd、多进程默认启动方式与 PEP 758。
真编译一个 C 宿主把 CPython 嵌进来,实测 Py_Initialize、PyRun_SimpleString、Py_InitializeFromConfig 的调用与返回值;再读 3.14.6 的真实头文件,对比标准构建与自由线程构建的对象布局、共享引用状态位、PyMutex 与临界区,并如实交代本机无法实测的部分。
用 uv build 真打一个包,逐文件拆开 wheel 的 .dist-info、RECORD、METADATA 与 .data/ 目录并实测安装落点,再看 entry_points 如何生成 console script、PEP 517 后端钩子的真实调用顺序,以及 wheel tag、平台标签与 abi3 的匹配规则。
《Python编程实战》全书导航页:说明实战卷在 Python 三卷体系中的定位、读者画像与前置知识,梳理四个部分之间的依赖关系,并按部分列出 18 章 54 节的完整章节索引,另给两条阅读路径建议与延伸阅读方向,帮你把入门语法升级为可交付的生产级工程能力。
把 TaskAPI 真正部署到服务器:写 systemd 单元托管进程、用软链与健康门控的脚本切换版本、把第 12 章的优雅关闭接到 SIGTERM 上,并实测「发信号后排空在途请求再退出」的完整时序,最后讨论多实例滚动与套接字传递两种零停机思路。
把 TaskAPI 打成最小 Docker 镜像:写多阶段 Dockerfile,构建阶段用 golang:1.27-alpine 编译静态二进制、运行阶段用 alpine 只装产物,配 .dockerignore 与层缓存,用非 root 用户运行,并实测镜像体积、容器日志与端点响应。
把 TaskAPI 编译成能上服务器的产物:用 GOOS/GOARCH 在 Mac 上交叉编译出 Linux 二进制、用 CGO_ENABLED=0 做静态链接、用 -trimpath 与 -ldflags 注入版本号并瘦身,再用 file 与 go version -m 核对产物,最后写成可复用的构建脚本。
demo_ab.py 复用同一个评测模块,比较 max_steps 和人工设置的两版脚本。期望与评分规则保持相同,结果变化来自固定脚本行为。真实 A/B 应固定测试集和评分口径,随机分配配置、覆盖多次运行、记录模型版本与不确定性。一次一个变量有助归因,但不能代替随机化和统计检验。
本节提供完整 Case、Score、Report 和 evaluate。修订示例使用两条固定用例:检索用例与已知失败用例,不再引用旧六条统计。权重非负且和为一,评测集不能空,case id 不能重复。AgentLoopError 保留部分失败轨迹;脚本耗尽属于运行失败,其他配置错误继续向上暴露。
本节使用标准库 unittest,不要求 pytest。测试应验证工具顺序、模型实际收到的消息、受控停止和错误回灌,而不是只检查最终一句话。四个 BookTests 是教学入门用例;完整项目另有基础和扩展回归,覆盖并行、预算、恢复、批准、幂等与日志。测试通过只针对这些路径,不承诺不误报或没有其他缺陷。
讲解浮点语义如何约束编译器优化:IEEE 754 的舍入、NaN 与符号零规则,为什么结合律与分配律在浮点上不成立,-ffast-math 的各子开关分别放宽了什么,以及如何在数值稳定性与性能之间做出工程取舍,附可运行的 C 代码与测试策略。
讲解查询式编译器架构:把编译过程建模成带记忆化的查询图,用 Salsa 的键值模型与修订号(revision)追踪依赖,实现细粒度的增量类型检查,并给出 rust-analyzer 的依赖追踪、循环不动点、缓存淘汰与工程实践陷阱,附伪代码与工具命令。
讲解编译期插桩实现的内存与并发检查:ASan 的影子内存与红区布局、TSan 的 happens-before 追踪、MSan/UBSan 的检测原理,以及 CFI、SafeStack、FORTIFY 等编译期安全加固手段与 CI 集成实践。
对比三大目标文件格式:ELF 的节表与程序头表、Mach-O 的加载命令与两段式布局、COFF/PE 的节表与重定位,讲清符号表、重定位记录、链接视图与执行视图的差别,并给出 readelf、otool、dumpbin 等实操命令与常见链接错误排查。