PHP 金额表达式注入

php 的弱类型,有可能被表达式金额注入。

正常金额应该是整数或小数。如果传递一个表达式,如: +300*-1,则可能造成表达式攻击。

if($user['money'] < $amount){
    return build_err("余额不足");
}

上面的校验,如果 $amount 是一个表达式,则该校验会校验通过,从而跳过校验造成攻击。

最简单的解决办法,就是直接 float 一下。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注