In Laravel 4 Illuminate\Database\Query
in a Builder
class delete
function accepts null
as an id
parameter. And behaivor of this function implies that if I have something like:
DB::table('users')->where('id', $id)->delete();
And if $id
will be passed as a null
, it will truncate the whole table. Which means that besides standard validation, I have to wrap every delete statement with ! is_null($id)
validation. Is it a security breach or it's considered as a standard practice?
I think you're misunderstanding what that parameters purpose is. It's simply a shortcut for the example you have shown. If you have a users ID you can delete them without writing that where
clause.
DB::table('users')->delete($id);
The above is identical to this:
DB::table('users')->where('id', $id)->delete();
You'd obviously perform a check prior to using any of these methods to ensure that a valid ID has been supplied. I wouldn't say it's a security breach, just something you as a developer needs to be aware of when developing your application. You don't just go willy nilly deleting things without first validating the input.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With