如何修复 Cookie 参数中的 SQL 注入漏洞

Cookie 里的值一旦未经校验就直接拼进 SQL,风险和表单注入没有区别,而且更容易被忽视。本文按 PHP、ASP/ASP.NET 和测试排查三条线梳理修复方法,说明哪些做法可靠、哪些“过滤”其实挡不住攻击。 Cookie 注入和表单注入本质上是同一类问题,但它更容易藏在登录态、中间件和日志链路里,被开发在排查时漏掉。

如何修复 Cookie 参数中的 SQL 注入漏洞

Python 实现 HTTP 上行请求体的 gzip 压缩

HTTP 请求体的 gzip 压缩并不是各家 Python HTTP 库自动提供的能力,核心做法始终是先手动压缩 body,再显式设置 `Content-Encoding: gzip`。本文按同步、异步和不同运行环境梳理可用写法,并总结参数差异、常见误区和选型建议。

Python 实现 HTTP 上行请求体的 gzip 压缩

CentOS 里 C++ 日志怎么记录:标准库、spdlog 与 syslog 选型说明

在 CentOS 上做 C++ 日志记录,常见做法主要有三类:标准库写文件、接入 spdlog 等第三方库,以及直接走 syslog。它们在实现成本、功能完整度和运维接入方式上差异明显,适合的项目规模也不同。 在 CentOS 里给 C++ 程序加日志,表面上只是“写一行到文件”,真正麻烦的是后续要不要分级、轮转、并发安全,甚至接入系统日志。

CentOS 里 C++ 日志怎么记录:标准库、spdlog 与 syslog 选型说明

Rust 如何高效利用 Linux 系统资源

Rust 在 Linux 上的优势不只是“安全”和“快”,更体现在它能按场景调用标准库、异步运行时和底层系统接口。本文从文件、网络、系统调用、内存、并发到性能调优与内核方向,梳理各类资源该怎么用、何时该下探到底层。

Rust 如何高效利用 Linux 系统资源

C#/.NET ref struct 深度解析:语义、限制与最佳实践

`ref struct` 是 C# 7.2 引入的一类受限值类型,核心目标是把对象生命周期锁定在栈作用域内,从而减少 GC 干扰并保证内存访问安全。理解它的限制来源,比死记“哪些地方不能用”更重要。 很多开发者第一次接触 `ref struct`,往往先记住一串“不能做什么”的规则:不能装箱、不能实现接口、不能进 `async`、不能放进类字段。

C#/.NET ref struct 深度解析:语义、限制与最佳实践

PostgreSQL 15 如何在 SQL 存储过程中管理事务

PostgreSQL 15 的存储过程虽然支持事务相关能力,但过程体里并不能直接写 `BEGIN`、`COMMIT`、`ROLLBACK`。真正可用的做法,是把事务边界交给调用方,在过程内部借助 `SAVEPOINT` 与 `ROLLBACK TO SAVEPOINT` 做局部回退。 很多人把 PostgreSQL 15 的 CREATE PROCEDURE 理解成“终于能在存储过程里自己提交事务”,但真正动手时,最先遇到的往往是语法错误,或者提交时机和预期完全不一致。

PostgreSQL 15 如何在 SQL 存储过程中管理事务

如何编写单元测试验证 SQL 注入防护

单元测试要验证的不是“接口没报错”,而是恶意输入是否在数据库执行前就被业务层拦截。本文围绕真实攻击载荷传递、异常断言、高危拼接分支、日志审计和二次注入覆盖,整理一套更可靠的 SQL 注入防护测试思路。

如何编写单元测试验证 SQL 注入防护