我有这样的路线
Route::get('/car-{travelType}/{cityFrom}-{cityTo}-{id}.html','ArticleController@getDetail')->name('articles_detail');
在我的控制器中,我捕捉到这样的参数
public function getDetail($cityFrom, $cityTo, $id, Request $request)
{
$article_detail = DB::select("CALL article_detail(?,?,?)", [$cityFrom,$cityTo,$id]);
return $article_detail;
}
这样可以正常工作但是有一个问题是这个查询得到sqlinjection因为路由发送了raw参数。
在帖子请求中,我可以捕获$request->input('some_fields')
之类的请求,laravel会在屏幕后面保护我,但不会在获取请求中保护。
我该如何解决这个问题?
答案 0 :(得分:0)
您也可以使用
在Get请求中使用$ request-> get('somefield')www.site.com/page?somefield=value
在这种情况下当你接受$ request-> get('somefield')它应该给你“价值”
所以在你的情况下:
www.site.com/page?travel-type=foo&city-from=berlin&city-to=munich&id=1
$request->get('travel-type'); // foo
$request->get('city-from'); // berlin
$request->get('city-to'); // munich
$request->get('id'); // 1