【发布时间】:2020-07-20 07:21:00
【问题描述】:
我在 Laravel 中有一个这样的简化代码:
$uid = $request->input('uid');
DB::table('users')->insert([
'uid' => DB::raw("CONV('$uid', 16, 10)"),
'created_at' => date("Y-m-d H:i:s")
]);
我的代码是否容易受到 SQL 注入攻击?为什么?如果是这样,我该如何预防?
【问题讨论】:
-
您正在使用
$uid进行注入,所以是的,您已经创建了一个注入漏洞。 -
提示:在 PHP 中进行转换,然后传入不带
DB::raw的普通旧参数。 -
@tadman 我不得不处理无符号的 64 位整数,这就是为什么我更喜欢 mysql 的方式来转换十六进制值。
标签: php mysql laravel sql-injection query-builder