有没有关于如何准备原始查询以防止SQL注入的最佳实践?我的代码看起来像这样(例如,简化了-实际查询更复杂,或者我只使用Fluent API):
$start = Input::get('start');
$end = Input::get('end');
$query = 'SELECT * FROM `readings` ';
$query .= "WHERE `date` BETWEEN '".$start."' AND '".$end."' ";
$readings = DB::Connection('customer')->first($query);我应该如何做才能避免上面的SQL注入风险?
(注-上面的代码是针对Laravel 3的,但等效的概念也适用于Laravel 4)。
发布于 2013-07-01 17:52:29
使用预准备语句防止sql注入
对于Laravel,使用查询构建器http://four.laravel.com/docs/queries
$readings = DB::table('readings')
->whereBetween('date', array($start, $end))->get();发布于 2013-07-01 18:09:56
为了防止SQL注入,您应该对域(数据类型)使用参数,而不是使用字符串作为parameters.Probably,最简单的方法是使用ORM或存储过程。为什么?因为当您使用纯字符串作为参数时,客户端可以在参数中输入任何值,并通过sql注入攻击您!
https://stackoverflow.com/questions/17401075
复制相似问题