阿Y博客

上辈子作恶多端,这辈子Chsarp后端
文章发布热力图
一 三 五
少
多
C# ZIP 压缩解压实战:Zip Slip 防御、GBK 中文乱码与 CRC 流式校验

C# ZIP 压缩解压实战:Zip Slip 防御、GBK 中文乱码与 CRC 流式校验

业务系统里的 ZIP 打包下载与日志解压看似简单,实际要同时处理 GBK 中文乱码、Zip Slip 目录穿越攻击、大文件流式读写与 CRC 校验。本文基于 SharpZipLib 的封装,从 ZIP 条目名规范讲起,逐段拆解条目收集、压缩写入、安全解压、魔数校验的完整实现与踩坑清单。
.NET 0 0 0
C# 长轮询实战:可取消等待、瞬时失败容忍与通用流程提炼

C# 长轮询实战:可取消等待、瞬时失败容忍与通用流程提炼

三个结构相似的对外接口共用一条"生成脚本→下发→轮询结果"链路。本文以真实代码为例,讲清长轮询的工程细节:校验前置避免错误混进循环、总超时/固定间隔/连续失败阈值三要素、Task.Delay(Timeout.Infinite)+CancelAfter 实现间隔不漂移的可取消等待,以及 when 异常过滤器如何区分"到点唤醒"与"外部取消"。
.NET 0 0 0
从 0 到 1:用 C# 手写一个完整的 Telnet 协议客户端

从 0 到 1:用 C# 手写一个完整的 Telnet 协议客户端

本文从 SwitchData 项目源码出发,手把手拆解一个生产可用的 C# Telnet 客户端。核心亮点:Telnet 协议状态机解析器(逐字节处理 IAC/DO/WILL/SB/SE 协商)、SemaphoreSlim 双锁全双工设计、复用 Encoder 解决 UTF-8 多字节截断、IAsyncDisposable 异步资源管理。附带实战踩坑:登录残留清除、VT100 控制序列过滤、ORDP 网关并发限流。
.NET 0 0 0
ASP.NET Core 接口审计日志实战:IAsyncActionFilter 拦截出入参 + 敏感字段脱敏 + 异步落库

ASP.NET Core 接口审计日志实战:IAsyncActionFilter 拦截出入参 + 敏感字段脱敏 + 异步落库

接口审计日志选中间件还是 ActionFilter?中间件拿不到绑定后的参数和返回值,IAsyncActionFilter 正好卡在两者之间。本文基于真实项目代码,拆解 DisplayAttribute 生成双语操作名、入参敏感字段脱敏、出参反射递归截断、fire-and-forget 异步落库四大实现要点,并总结未观察异常、白名单跳过等踩坑细节。
.NET 0 0 0
C# 桌面应用自动更新实战:Mutex 单实例 + Version 比较 + 独立 Updater 进程交接

C# 桌面应用自动更新实战:Mutex 单实例 + Version 比较 + 独立 Updater 进程交接

运行中的 exe 无法覆盖自己,是桌面应用自更新的经典难题。本文基于真实 WinForms 项目源码,完整拆解一套自更新方案:命名 Mutex 实现用户级单实例并唤醒已有窗口,Version 类型安全比较服务端版本,Timer 防重入实现周期检查,独立 Updater 进程完成文件锁检测、流式下载、Zip 解压覆盖与主程序重启,并总结实战踩坑点。
.NET 1 0 0