Python subprocess 与 shell 注入防护:列表传参、真实攻击演示、真实堆栈
一份动手向的 Python 外部命令安全指南:为什么列表传参优于 shell=True,用真实可运行的注入示例讲解 shlex.quote,以及 check=True、capture_output、timeout、env 和 cwd 的用法。所有输出均为实际执行结果。
用于粘合、自动化与协议工作的实用 Python——优先标准库。
17 篇文章
一份动手向的 Python 外部命令安全指南:为什么列表传参优于 shell=True,用真实可运行的注入示例讲解 shlex.quote,以及 check=True、capture_output、timeout、env 和 cwd 的用法。所有输出均为实际执行结果。
SQLite 的 JSON1 扩展让你可以对存储在 TEXT 列中的 JSON 进行查询、过滤和索引——json_extract、->>、json_each,以及让查询更快的生成列技巧。
正向仿真玻璃珠 3D 图片背后的光学:用逐像素 GPU 着色器对玻璃珠阵列做光线追迹,薄透镜偏折与斯涅尔定律折射的对比,摩尔纹放大与视差为何出现,Qt 加 moderngl 的上下文陷阱,以及把 3D 模型打印到珠子背后的逆向设计。
删了 99% 的行,SQLite 文件却没变小?那是 freelist 在作怪。用真实的 page_count、freelist_count、VACUUM、auto_vacuum、incremental_vacuum、VACUUM INTO 和 integrity_check 前后的数字说清楚。
一篇基于真实实验的 SQLite locking 指南:默认回滚日志为什么会让第二个写者拿到 database is locked(SQLITE_BUSY)、WAL mode 如何让读不再与写冲突、busy_timeout 与 synchronous 的取舍,以及单写者规则下的工程设计与真实耗时数据。
一份动手的 Python 抓包与组包教程:用 Scapy 手工构造 ICMP echo、一个 Ethernet/IP/TCP 帧和一个真实的 DNS 查询,只发到 127.0.0.1,再把回包嗅探回来。附真实的 show()、hexdump() 与解析器输出,以及 NET_RAW 与授权使用的边界。
SQLite FTS5 实战:把全文搜索装进一个数据库文件。真实 sqlite3 输出——建索引(独立表与外部内容表)、MATCH 查询语法、bm25() 排序对比 LIKE、highlight() 与 snippet()、unicode61/porter/trigram 三种分词器、optimize 与 rebuild 维护,以及诚实的边界。
真实计时数据展示阻塞调用、顺序 await、未等待协程和 CPU 密集任务如何悄悄摧毁 asyncio 性能——以及如何逐一修复。
我如何不靠猜找出 Python 内存泄漏:先搭一个能复现的 harness,用 /proc 读 RSS,用 tracemalloc 快照 diff 点名那个在增长的分配,再用 gc.get_referrers 找出谁还持有它,最后用同一套数字证明修复有效。全部数字来自 Python 3.14.7 的真实运行。
我用 Python 标准库写了一个极简的 Model Context Protocol server,再用手把它通过 stdio 跑起来。下面是真实的 JSON-RPC 帧:initialize、tools/list、tools/call——外加架构、工具 schema、安全边界,以及 MCP server 到底在哪里比朴素 function calling 更值得。
我在这个博客自己的文章上搭了一个微型检索系统——SQLite、256 维嵌入、BM25、RRF,并贴出真实输出。三个查询,其中一个彻底失败。RAG 到底是什么,为什么分块和检索质量决定一切,以及什么时候你根本不需要 RAG。
WebSocket 还是 Server-Sent Events?我把一个回声服务器和一个事件端点放到 nginx 后面,抓下了真实的 101 握手、text/event-stream 帧、带 Last-Event-ID 的重连,以及缓冲那个坑——最后整理成一份决策清单。
面向写后端的人的 XSS 与 CSRF 指南:XSS 的三种类型、为什么按上下文做输出编码胜过一把通用 escape()、作为纵深防御的 Content-Security-Policy、cookie 为什么让你易受 CSRF、SameSite cookie 的行为、CSRF token、为什么「我们用 JSON API」并不自动安全,以及为什么一个 XSS 就能击穿你的 CSRF token。
一个 IP 一个计数器根本不算限流。本文讲清楚你到底在防什么、为什么固定窗口和滑动窗口会失手、令牌桶如何处理突发、该在哪一层拦截、小服务不用 Redis 怎么做限流,以及如何返回带 Retry-After 的、诚实的 429。
从双扣款、重复记录讲起:为什么网络必然带来重试、客户端永远无法确定请求是否成功、至少一次投递让端到端精确一次成为幻觉,以及一套能扛住并发、会重放已存结果的幂等键服务端实现和常见错误。
一个只用标准库、一次就能读懂的 Python pcap 解析器:全局头与数据包记录、字节序与 snaplen、何时该用 scapy 或 dpkt、何时手写反而更划算、从以太网到 IPv4 再到 TCP 的 5 元组提取、pcapng 块结构速览,以及流式处理的性能笔记。
本文记录我如何靠观察逆向锐捷 ePortal 认证门户与 CAS 单点登录流程,绕过老接口 404 的坑,用纯 Python 标准库写出无浏览器的校园网自动登录守护进程,并作为 systemd 服务部署,在强制断线后约 16 秒内自动重连。