繁体   English   中英

使用laravel查询构建器,查询构建器内部的原始查询可以确保SQL注入安全吗?

[英]Raw Query inside query builder can secure for sql injection using laravel query builder?

我想知道何时在laravel query builer中的查询构建器中使用原始查询,如下所示。

   $salesdata = DB::table('HEADER')
                ->join('BRANCH', 'HEADER.BRANCHCODE', '=', 'BRANCH.BRANCHCODE')
                ->select('HEADER.BRANCHCODE','BRANCH.BRANCHNAME',
                    DB::raw('SUM("HEADER"."AMT") as netamt'),
                    DB::raw('SUM("HEADER"."AMT") + SUM("HEADER"."DISCOUNT")- SUM("HEADER"."TAX1")- SUM("T_CASH_HEADER"."TAX2") as grossamt'),'BRANCH.BRANCHNAME',
                    DB::raw('SUM("HEADER"."COVER") as NetCover'),
                    DB::raw('SUM("HEADER"."DISCOUNT") as discount'),DB::raw('SUM("HEADER"."TAX1") as tax'),DB::raw('round(SUM("HEADER"."AMT")/SUM("HEADER"."COVER"),2) as avg'))
                ->whereBetween('HEADER.INVOICEDATE', [$fromDate, $toDate])
                ->groupBy('BRANCH.BRANCHCODE','BRANCH.BRANCHNAME','HEADER.BRANCHCODE')
                ->orderBy('AMT','ASC')
                ->get();

我想知道上面的查询可以确保使用laravel进行sql注入。

不,除了->whereBetween('HEADER.INVOICEDATE', [$fromDate, $toDate])语句外,您没有将任何用户输入传递给select语句,这将使用PDO参数绑定来防止SQL注入。 所以,这很安全!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM