Route::get('/car-{travelType}/{cityFrom}-{cityTo}-{id}.html','[email protected]')->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,因爲路由發送原始參數。
在post request中,我可以捕獲像$request->input('some_fields')
這樣的請求,laravel保護我在屏幕後面,但沒有得到請求。
我該如何解決這個問題?
當你使用'DB :: select'只要你傳遞用戶你已經對SQL注入保護提供的數據作爲第二個參數和在sql中使用'?'。 –
@LoganBailey哦,這是真的。非常感謝,對不起,我沒有測試過的代碼之前詢問:( – vietnguyen09
那些不是查詢字符串變量,他們是路由參數 – lagbox