在 Laravel 4 中Illuminate\Database\Query
in a Builder
class delete
函数接受null
as an id
范围。这个函数的行为意味着如果我有类似的东西:
DB::table('users')->where('id', $id)->delete();
And if $id
将被传递为null
,它将截断整个表。这意味着除了标准验证之外,我还必须用以下内容包装每个删除语句! is_null($id)
验证。这是安全漏洞还是被视为标准做法?
我认为您误解了该参数的用途。这简直就是一个shortcut对于你所展示的例子。如果您有用户 ID,则无需写入即可删除它们where
clause.
DB::table('users')->delete($id);
上面的内容与此相同:
DB::table('users')->where('id', $id)->delete();
显然,您需要在使用这些方法之前执行检查,以确保提供了有效的 ID。我不会说这是一个安全漏洞,只是作为开发人员在开发应用程序时需要注意的事情。您不会在没有首先验证输入的情况下随意删除内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)