代码安全系列(2) - Race Condition

Race Condion 中文名不知道怎么翻译,竞态条件?紊乱条件?冲突条件?在多线程编程过程中,我们常常关心的是我们的线程是否会出现死锁(deadlock)的情况,而忽视Race Condion。到底Race Condtion是什么呢?

Race Condion是在多线程(或者说多个处理过程)情况下,对有些共享资源进行混乱操作,导致整个处理过程变得混乱,引发BUG。

有一个英文解释:

A race condition is any case where the results can be different depending on the order that processes arrive or are scheduled or depending on the order that specific competing instructions are executed.

一个早期传统的Race Condion的例子:

在早期的UNIX版本中,存在一个叫UNIX login的攻击方式。当一个新用户登陆到系统后,需要从root权限切换到user权限,假如在切换过程中一直按ESC键,则会导致权限切换不成功,使得登陆的用户一直具有root权限,从而控制整个计算机。

下面我们用C#来做一个多线程情况下的Race Contion的例子:

复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值