首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Laravel 3原始查询中处理准备好的语句/防止SQL注入?

问如何在Laravel 3原始查询中处理准备好的语句/防止SQL注入?
EN

Stack Overflow用户
提问于 2013-07-01 17:23:16
回答 2查看 2K关注 0票数 0

有没有关于如何准备原始查询以防止SQL注入的最佳实践?我的代码看起来像这样(例如,简化了-实际查询更复杂,或者我只使用Fluent API):

代码语言:javascript
复制
$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)。

EN

回答 2

Stack Overflow用户

发布于 2013-07-01 17:52:29

使用预准备语句防止sql注入

对于Laravel,使用查询构建器http://four.laravel.com/docs/queries

代码语言:javascript
复制
$readings = DB::table('readings')
                    ->whereBetween('date', array($start, $end))->get();
票数 0
EN

Stack Overflow用户

发布于 2013-07-01 18:09:56

为了防止SQL注入,您应该对域(数据类型)使用参数,而不是使用字符串作为parameters.Probably,最简单的方法是使用ORM或存储过程。为什么?因为当您使用纯字符串作为参数时,客户端可以在参数中输入任何值,并通过sql注入攻击您!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17401075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档