我在這個崗位執行代碼:保持信息
Autocomplete with ajax call(Json) in laravel, no response
它使用laravel Ajax調用(JSON)。一切運作良好。但是,路由使用「get」,查詢結果可以使用URL查看。我認爲這是一個安全和隱私問題。
當自動完成不直接調用信息時,保持信息不被查看的最佳方式是什麼?
我在這個崗位執行代碼:保持信息
Autocomplete with ajax call(Json) in laravel, no response
它使用laravel Ajax調用(JSON)。一切運作良好。但是,路由使用「get」,查詢結果可以使用URL查看。我認爲這是一個安全和隱私問題。
當自動完成不直接調用信息時,保持信息不被查看的最佳方式是什麼?
您可以通過驗證設置參數的最小長度。將其放入您的控制器並限制js代碼minLength: 3
中的最小長度。
use Validator; // at the top of controller
public function search(Request $request) {
$v = Validator::make($request->all(), [
'q' => 'required|min:3',
]);
if ($v->fails()) {
return [];
}
// now you are sure that q has minimum 3 chars
// search and output
}
無法識別它是從自動完成js還是從get請求中調用。
但是,您可以使用throttle middleware來防止抓取自動填充數據。像這樣使用這個中間件:'middleware' => 'throttle:60,1'
。這限制了每分鐘60個請求的請求,然後禁止訪問1分鐘。請注意,api中間件組在Laravel 5.2中默認啓用throttle:60,1
但是爲什麼?每個自動完成請求都可以通過'curl'來重現。 –
shukshin.ivan你能詳細說明嗎? –
您還沒有回答。爲什麼?從什麼樣的要求保護,簡單得到? –