<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[深山技术宅的博客]]></title><description><![CDATA[来自大山深处老码农的技术分享]]></description><link>https://blog.csdn.net/jjj_web</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; jjj_web]]></copyright><item><title><![CDATA[你的 UUID 为何总在数据库里“拖后腿”？——Python uuid 模块的版本陷阱、排序幻觉与选型全攻略]]></title><link>https://blog.csdn.net/jjj_web/article/details/168871861</link><guid>https://blog.csdn.net/jjj_web/article/details/168871861</guid><author>jjj_web</author><pubDate>Thu, 29 Oct 2026 09:30:00 +0800</pubDate><description><![CDATA[本文剖析了Python uuid 模块的五大版本陷阱：UUID4随机性导致数据库索引性能下降、误以为可排序、UUID1泄露MAC地址、UUID3/5混用致ID不一致，以及格式不统一引发查询失败。揭示了其生成机制与适用场景，强调在数据库主键等场景应优先选用可排序的UUID7或ULID，避免盲目使用UUID4。建议建立清晰选型规范，结合性能、安全与可排序需求，让唯一标识真正高效可靠。]]></description><category></category></item><item><title><![CDATA[【八个月网安课程】第十三周·周二：条件竞争上传进阶——多线程并发突破与防御绕过]]></title><link>https://blog.csdn.net/jjj_web/article/details/168871786</link><guid>https://blog.csdn.net/jjj_web/article/details/168871786</guid><author>jjj_web</author><pubDate>Thu, 29 Oct 2026 08:30:00 +0800</pubDate><description><![CDATA[第十三周深入探讨条件竞争上传的进阶实战：面对文件名随机化、先校验后移动等防御机制，通过多线程并发策略（如竞态覆盖、竞态包含）突破防线。重点掌握在无法预知文件名时，利用固定路径覆盖或实时解析响应获取文件名，结合文件包含漏洞形成稳定攻击链。理解原子操作、文件锁定等防御原理，明确随机命名无法根治竞态问题。]]></description><category></category></item><item><title><![CDATA[【同城鲜羊奶小程序实战】Day 2：公共组件 + 用户服务 + 支付适配器 + 网关插件链]]></title><link>https://blog.csdn.net/jjj_web/article/details/168871685</link><guid>https://blog.csdn.net/jjj_web/article/details/168871685</guid><author>jjj_web</author><pubDate>Thu, 29 Oct 2026 07:30:00 +0800</pubDate><description><![CDATA[Day 2交付完成，构建了统一公共组件库，涵盖异常处理、JWT鉴权、日志追踪与RPC调用；实现用户服务的微信登录、手机号绑定及地址管理；集成支付适配器支持多渠道支付；网关部署插件链，实现JWT鉴权、限流与路由管理，保障系统高可用与可扩展性。]]></description><category></category></item><item><title><![CDATA[【三个月 AI Agent 实战学习】Day 51：完善迷你软件公司 —— 代码评审、迭代修复与工具共享]]></title><link>https://blog.csdn.net/jjj_web/article/details/168871606</link><guid>https://blog.csdn.net/jjj_web/article/details/168871606</guid><author>jjj_web</author><pubDate>Thu, 29 Oct 2026 06:30:00 +0800</pubDate><description><![CDATA[今日完善迷你软件公司流程，引入代码评审与迭代修复闭环。通过Python循环控制CrewAI执行，实现“编码→评审→测试→修复”迭代，结合结构化测试报告与代码执行工具，使测试从静态审查升级为实际运行验证。新增代码评审员角色，强化质量把控，最终达成自动修复与验证的完整闭环。]]></description><category></category></item><item><title><![CDATA[【3个月小模型训练实战】Day 1任务：Windows 开发环境搭建]]></title><link>https://blog.csdn.net/jjj_web/article/details/168764338</link><guid>https://blog.csdn.net/jjj_web/article/details/168764338</guid><author>jjj_web</author><pubDate>Wed, 28 Oct 2026 10:30:00 +0800</pubDate><description><![CDATA[Windows 开发环境搭建
目标： 把 Python、Git、Docker、PHP、Composer 全部装好并验证通过。
验收标准： 5 条命令全部输出版本号，Docker Desktop 显示 WSL2 引擎运行中。]]></description><category></category></item><item><title><![CDATA[你的 HMAC 为何总在“字符串”上翻车？——Python hmac 只认 bytes 的铁律与完全避坑指南]]></title><link>https://blog.csdn.net/jjj_web/article/details/168763945</link><guid>https://blog.csdn.net/jjj_web/article/details/168763945</guid><author>jjj_web</author><pubDate>Wed, 28 Oct 2026 09:30:00 +0800</pubDate><description><![CDATA[Python hmac 仅接受 bytes/bytearray，拒绝字符串（str），因 HMAC 基于字节运算，需显式编码避免隐式转换导致的跨平台错误。常见陷阱包括密钥或消息未编码、编码不一致、使用 == 比较签名（时序攻击）、混淆 digest() 与 hexdigest()。正确做法：统一用 UTF-8 编码，使用 hmac.compare_digest() 比较，密钥应随机生成且不少于哈希输出长度（如 32 字节）。]]></description><category></category></item><item><title><![CDATA[【八个月网安课程】第十三周·周一：文件内容检测绕过——文件头伪造与二次渲染突破]]></title><link>https://blog.csdn.net/jjj_web/article/details/168763843</link><guid>https://blog.csdn.net/jjj_web/article/details/168763843</guid><author>jjj_web</author><pubDate>Wed, 28 Oct 2026 08:30:00 +0800</pubDate><description><![CDATA[第十三周周一聚焦文件内容检测绕过，掌握通过伪造GIF89a等魔术字节绕过getimagesize与finfo检测，理解二次渲染原理并利用GIF注释区插入PHP代码实现持久化。结合Upload-labs Pass-11/12实战，成功上传并执行WebShell，提升漏洞挖掘与防御对抗能力。]]></description><category></category></item><item><title><![CDATA[【同城鲜羊奶小程序实战】Day 1：Swoole 6.x + PHP 8.5 环境搭建]]></title><link>https://blog.csdn.net/jjj_web/article/details/168763559</link><guid>https://blog.csdn.net/jjj_web/article/details/168763559</guid><author>jjj_web</author><pubDate>Wed, 28 Oct 2026 07:30:00 +0800</pubDate><description><![CDATA[本文介绍Swoole 6.1与PHP 8.5（或降级至8.4）在Hyperf 3.2下的环境搭建方案，重点分析版本兼容性风险，推荐使用Hyperf 3.2 + Swoole 6.1 + PHP 8.4组合以确保稳定性。通过PPA安装PHP、源码编译Swoole并启用扩展，提供完整安装流程及Docker镜像配置，强调生产环境建议优先验证兼容性，必要时降级以规避风险。]]></description><category></category></item><item><title><![CDATA[【三个月 AI Agent 实战学习】Day 50：项目三启动 —— 迷你软件公司（多智能体协作）]]></title><link>https://blog.csdn.net/jjj_web/article/details/168763387</link><guid>https://blog.csdn.net/jjj_web/article/details/168763387</guid><author>jjj_web</author><pubDate>Wed, 28 Oct 2026 06:30:00 +0800</pubDate><description><![CDATA[今日启动“迷你软件公司”多智能体项目，模拟真实开发流程：产品经理拆解需求 → 架构师设计架构 → 程序员编码 → 测试员验证。基于CrewAI构建四角色协作体系，通过Pydantic定义结构化输出，实现任务依赖与流程控制。重点优化提示词设计，确保输出规范可执行。已完成需求分析与架构设计阶段，为后续代码生成与测试奠定基础，全面检验多智能体在软件开发中的协同能力。]]></description><category></category></item><item><title><![CDATA[你的哈希为何总在“字符串”上翻车？——Python hashlib 只认 bytes 的铁律与完全避坑指南]]></title><link>https://blog.csdn.net/jjj_web/article/details/168644841</link><guid>https://blog.csdn.net/jjj_web/article/details/168644841</guid><author>jjj_web</author><pubDate>Tue, 27 Oct 2026 09:30:00 +0800</pubDate><description><![CDATA[Python hashlib 仅接受 bytes，拒绝 str，因哈希算法基于字节序列。常见错误包括直接传字符串、文件以文本模式读取、编码不一致等。修复方法：用 .encode('utf-8') 明确编码，二进制读取文件，统一使用 UTF-8 编码，并通过 update() 分块处理大文件。避免陷阱的关键是：哈希的是字节，不是字符。]]></description><category></category></item><item><title><![CDATA[【八个月网安课程】第十二周·周六：综合代码审计实战——审计 bWAPP 靶场并输出漏洞报告]]></title><link>https://blog.csdn.net/jjj_web/article/details/168644675</link><guid>https://blog.csdn.net/jjj_web/article/details/168644675</guid><author>jjj_web</author><pubDate>Tue, 27 Oct 2026 08:30:00 +0800</pubDate><description><![CDATA[今天将完成一次完整的 PHP 代码审计综合实战——以 bWAPP 靶场为对象，从环境搭建、自动扫描、人工研判到漏洞验证与报告撰写，走完白盒测试的全流程。这是对本周所学变量覆盖、SQL 注入、文件操作、命令/代码执行审计技能的全面检验，也是从“漏洞利用者”向“安全研究者”转变的重要里程碑。]]></description><category></category></item><item><title><![CDATA[【基于 Swoole+Hyperf 的微服务实战】第十二周·周六：演示最终成果、进行极限压测、回顾整个学习旅程，并为你的技术能力做出总结与展望]]></title><link>https://blog.csdn.net/jjj_web/article/details/168644540</link><guid>https://blog.csdn.net/jjj_web/article/details/168644540</guid><author>jjj_web</author><pubDate>Tue, 27 Oct 2026 07:30:00 +0800</pubDate><description><![CDATA[今天是整个三个月课程的最终综合实战与结业日。在过去的十二周里，我们从 Swoole 协程原理起步，历经 Hyperf 框架、微服务通信与治理、分布式事务、可观测性、电商核心系统、日志分析平台，最终亲手打造了一个高性能 API 网关与流量治理平台。今天，我们将演示最终成果、进行极限压测、回顾整个学习旅程，并为你的技术能力做出总结与展望。]]></description><category></category></item><item><title><![CDATA[【三个月 AI Agent 实战学习】Day 49：项目二 —— 投资辩论赛（AutoGen GroupChat 实战）]]></title><link>https://blog.csdn.net/jjj_web/article/details/168644344</link><guid>https://blog.csdn.net/jjj_web/article/details/168644344</guid><author>jjj_web</author><pubDate>Tue, 27 Oct 2026 06:30:00 +0800</pubDate><description><![CDATA[Day 49：基于AutoGen GroupChat构建投资辩论赛，模拟“死多头”“大空头”与“裁判”三角色对特斯拉（TSLA）的投资博弈。通过自定义发言顺序与终止条件，实现有序辩论流程，最终由裁判综合观点给出结构化投资建议。项目深化了对GroupChat机制、角色分工与决策逻辑的理解，对比CrewAI展现AutoGen在复杂协作场景中的优势。]]></description><category></category></item><item><title><![CDATA[你的 Base64 解码为何总在“等号”上翻车？——Python base64 填充符的隐秘规则与完全避坑指南]]></title><link>https://blog.csdn.net/jjj_web/article/details/168521333</link><guid>https://blog.csdn.net/jjj_web/article/details/168521333</guid><author>jjj_web</author><pubDate>Mon, 26 Oct 2026 08:30:00 +0800</pubDate><description><![CDATA[Python base64 解码常因填充符 = 问题报错，核心原因在于编码后长度必须为4的倍数。标准 Base64 要求缺失 = 时解码失败，而 JWT 等场景使用无填充的 URL 安全变体（-、_），需用 urlsafe_b64decode 并手动补齐 =。建议统一处理：对任意输入补足 = 至4的倍数，再解码，避免 Incorrect padding 错误。]]></description><category></category></item><item><title><![CDATA[【八个月网安课程】第十二周·周五：命令/代码执行点审计——eval、assert、system 参数追踪]]></title><link>https://blog.csdn.net/jjj_web/article/details/168521057</link><guid>https://blog.csdn.net/jjj_web/article/details/168521057</guid><author>jjj_web</author><pubDate>Mon, 26 Oct 2026 08:15:00 +0800</pubDate><description><![CDATA[今天将直面 PHP 中最危险的漏洞类型——命令注入与代码执行。通过审计 `eval`、`assert`、`system` 等函数的调用，追踪其参数来源，将能够识别出留存在代码中的致命后门或业务逻辑漏洞。掌握这些审计技能，意味着能从源码层面预见攻击者可能造成的最大破坏。]]></description><category></category></item><item><title><![CDATA[【基于 Swoole+Hyperf 的微服务实战】第十二周·周五：可视化后台：管理路由、插件、限流规则]]></title><link>https://blog.csdn.net/jjj_web/article/details/168520573</link><guid>https://blog.csdn.net/jjj_web/article/details/168520573</guid><author>jjj_web</author><pubDate>Mon, 26 Oct 2026 07:30:00 +0800</pubDate><description><![CDATA[本文实现基于 Swoole+Hyperf 的微服务网关可视化管理后台，通过 gateway-admin 项目提供 Web 界面与 RESTful API，对接 Nacos 实现路由、插件、限流规则等配置的增删改查。采用前后端分离架构，后端封装 Nacos OpenAPI 客户端，支持配置实时同步与版本对比发布。前端通过 AJAX 动态加载与提交配置，确保网关无需重启即可生效。系统集成简单权限认证，保障操作安全，显著提升运维效率与用户体验。]]></description><category></category></item><item><title><![CDATA[【三个月 AI Agent 实战学习】Day 48：AutoGen GroupChat —— 多 Agent 群聊协作机制]]></title><link>https://blog.csdn.net/jjj_web/article/details/168520252</link><guid>https://blog.csdn.net/jjj_web/article/details/168520252</guid><author>jjj_web</author><pubDate>Mon, 26 Oct 2026 06:30:00 +0800</pubDate><description><![CDATA[本文介绍AutoGen GroupChat多智能体协作机制，通过创建乐观派、悲观派与主持人三类Agent，实现围绕“AI对教育影响”的圆桌讨论。基于GroupChatManager，支持auto、round_robin、random、manual四种发言模式，动态选择发言人。实验展示对话驱动的自由辩论流程，最终由主持人总结并终止。该机制适用于投资评审、方案讨论等复杂协作场景，相较CrewAI更贴近真实交互。]]></description><category></category></item><item><title><![CDATA[你的编码转换为何总在“边界”翻车？——Python codecs 模块的底层机制、历史包袱与正确用法]]></title><link>https://blog.csdn.net/jjj_web/article/details/168520021</link><guid>https://blog.csdn.net/jjj_web/article/details/168520021</guid><author>jjj_web</author><pubDate>Sun, 25 Oct 2026 09:30:00 +0800</pubDate><description><![CDATA[Python codecs 模块是编码转换的底层引擎，但其历史遗留设计常导致“边界翻车”：codecs.open() 不处理换行符、encode/decode 参数混淆、BOM 处理不一致、增量编解码状态管理不当等。核心问题源于全局注册表、隐式类型转换与流式处理机制。现代 Python 应优先使用内置 open() 和 str.encode()/bytes.decode()，避免 codecs.open() 及其别名陷阱。正确用法需明确输入类型、合理使用增量编解码器，并谨慎注册自定义编解码器，以确保跨平台一]]></description><category></category></item><item><title><![CDATA[【八个月网安课程】第十二周·周四：文件操作漏洞审计——unlink、fopen、fwrite 等]]></title><link>https://blog.csdn.net/jjj_web/article/details/168519492</link><guid>https://blog.csdn.net/jjj_web/article/details/168519492</guid><author>jjj_web</author><pubDate>Sun, 25 Oct 2026 08:30:00 +0800</pubDate><description><![CDATA[今天将聚焦于 PHP 中另一类高危操作——文件相关函数。当 file_get_contents、unlink 等函数的参数被攻击者控制时，轻则泄露任意文件内容，重则删除关键系统文件。学会如何从代码层面审计这些漏洞，并掌握防御方法。]]></description><category></category></item><item><title><![CDATA[【基于 Swoole+Hyperf 的微服务实战】第十二周·周四：安全模块：IP 黑白名单、SQL 注入/XSS 检测插件、请求体大小限制]]></title><link>https://blog.csdn.net/jjj_web/article/details/168519196</link><guid>https://blog.csdn.net/jjj_web/article/details/168519196</guid><author>jjj_web</author><pubDate>Sun, 25 Oct 2026 07:30:00 +0800</pubDate><description><![CDATA[本周聚焦网关安全防护，实现三大核心机制：IP黑白名单插件（支持Nacos动态配置与CIDR匹配），SQL注入/XSS检测插件（基于正则扫描请求参数、头、体），以及请求体大小限制中间件（防止大包攻击）。通过在网关层统一拦截恶意流量，提升系统安全性与稳定性。各模块独立可配，协同工作，有效防御常见攻击，保障后端服务安全。]]></description><category></category></item></channel></rss>