在 Laravel 4 中,
Illuminate\Database\Query
类中的 Builder
函数接受 delete
作为 null
参数。这个函数的行为意味着如果我有类似的东西:id
如果
DB::table('users')->where('id', $id)->delete();
将作为
$id
传递,它将截断整个表。这意味着除了标准验证之外,我还必须使用 null
验证来包装每个删除语句。这是安全漏洞还是被视为标准做法?! is_null($id)
子句。
where
上面与此相同:
DB::table('users')->delete($id);
您显然需要在使用这些方法之前执行检查,以确保提供了有效的 ID。我不会说这是一个安全漏洞,只是作为开发人员在开发应用程序时需要注意的事情。您不会在没有首先验证输入的情况下随意删除内容。
DB::table('users')->where('id', $id)->delete();
DB::table('table_name')->where('table_id', $request['request_id'])->delete();