TOCTOU问题

TOCTOU问题

TOCTOU(Time-Of-Check to Time-Of-Use)是一类典型的竞态条件问题,指程序在“检查资源状态”和“实际使用该资源”之间存在时间窗口,状态可能被其他线程或进程悄悄改掉,从而引发逻辑错误或安全漏洞。本文通过 Redisson 分布式锁unlock的实际案例,说明 TOCTOU 在业务代码中的具体表现。

Explore categories

Explore the categories

System

5+ articles

System

思维

3+ articles

思维

Lang

18+ articles

Lang

Database

14+ articles

Database

Other

6+ articles

Other

Distributed

7+ articles

Distributed

Web

2+ articles

Web

DevPractice

1+ articles

DevPractice

生活

1+ articles

生活

Latest articles 🎈

Check out our latest articles

macOS上Java开发环境搭建

在 macOS 上搭建高效的 Java 开发环境:使用 sdkman 安装 JDK 与 Maven,配置 IntelliJ IDEA 常用选项,并推荐一批实用插件(JRebel、Grep Console、Maven Helper 等)和日志配色方案,提升日常开发效率。

·#macOS/Tools
0
1 min read

双因子认证-Google Authenticator工作原理

本文深入解析双因子认证(2FA)的原理,并以 Google Authenticator 为例,介绍基于时间的一次性密码(TOTP)是如何生成与验证的。适合开发者、产品设计师及对账号安全机制感兴趣的读者了解其背后的机制与实现逻辑。

·#Tools
0
5 min read

RabbitMQ的最佳实践

本文深入探讨了在使用 RabbitMQ 时如何保障消息系统的可靠性与稳定性,涵盖了消息不丢失的保障机制、消费者幂等性的实现策略、消息顺序的控制技巧以及数据堆积的应对方法。通过实践经验与配置建议相结合,帮助你构建一个高可用、可控且具备容错能力的消息队列系统。

0
4 min read

RabbitMQ的死信队列和延迟队列

死信队列(DLX)和延迟队列是构建健壮消息系统的关键机制。本文深入讲解了 RabbitMQ 中死信队列的触发场景(如消息过期、拒收、队列满等),以及如何利用插件或 TTL+死信机制实现延迟队列。通过配置示例帮助你掌握在生产环境中正确使用这两类队列,以实现消息重试、延迟处理、异常监控等常见需求。

0
3 min read

TCP三次握手流程

TCP三次握手是建立可靠连接的核心过程,它通过 SYN、SYN-ACK 和 ACK 消息的交互,确保客户端和服务器能够顺利建立通信通道。本文将通过Wireshark 抓包,详细展示 TCP三次握手的具体流程,解析每一步的作用和背后的原理,帮助你更好地理解这一关键网络机制。

·#Linux/Network/C
0
5 min read

TCP发送缓冲区

深入解析 TCP 套接字发送缓冲区的工作机制,包括数据写入、缓冲区满时的阻塞行为、内核发送流程以及常见误解。适合理解网络应用的发送路径与性能瓶颈。

·#Network/Linux
0
2 min read