PHP代码展示的Race Condition漏洞例子

由于进程竞争相关资源(如CPU的运行时间等)导致的程序错误,称为Race Condition漏洞。

漏洞场景:简易转账程序,开始的时候bank1001账号有10000元钱,bank1002账号0元钱,每一次请求就从bank1001账号转账10元钱到bank1002账号。

创建数据库tmpbank,其中有一张表users,对应的SQL执行语句如下:

drop database if exists tmpbank;

create database tmpbank;

use tmpbank;

create table users(id varchar(50) primary key,number int);

insert usersvalues("bank1001",10000);

insert users values("bank1002",0);

对应的PHP代码如下:

functiongetnum($db,$id){

    $query="select * from users whereid='".$id."'";

    $result= mysqli_query($db,$query);

    $row=mysqli_fetch_assoc($result);

    return $row['number'];

}

functionupdate($db,$id,$num){

    $query="update users set number=$numwhere id='".$id."

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值