2017-12-20 9 views
-1

私は、既存のLaravel 4.2プロジェクトで別の開発者として参加しました。私が理解していないか目的を見逃しているコードの部分があるので、その理由があるかどうか確認したいと思います。Laravel AJAXリクエスト

フィルタが追加されました:

すべてのAJAXのルートに取り付けられる
Route::filter('ajax', function() { 
    if (!Request::ajax()) { 
     return response('Bad request', 400); 
    } 
}); 

Route::when('*-ajax', 'ajax'); 

この背後にある目的があった場合、私は疑問に思って?省略した場合、セキュリティ上の欠陥につながる可能性がありますか?リクエストがAJAXコールであって他のコールではないことを確認する必要があるのはなぜですか?

+0

明らかに、ajaxや標準クエリに対して同じ応答形式を返さないようにすることができます。 – Amarnasan

+0

レスポンスを各コントローラメソッドで個別に処理する必要はありませんか?なぜ私はそれのためのフィルタを作るだろうか? – Norgul

答えて

1

これはLaravel 4.2 pattern based filter

あるアスタリスクは、ワイルドカードとして使用され、文字の任意の組み合わせに一致します。

はだからで-ajax持つ任意の経路をルーティングするためにもフィルタと対にされるべきである

Route::filter('ajax', function() 
{ 
    // 
}); 

現像剤パターンに一致する異なる場合

これを濾過しますリクエストが実際にajaxリクエストであるかどうかをテストします。そうでなければ、彼らは400エラーを送信しています。

これらのルートは、誰かがブラウザに入力するときではなく、明らかにajaxリクエストにのみ応答するため、ajaxコールかどうかを確認します。

+0

最後の文は実際に私の質問に答えました、ありがとう – Norgul

+0

はい申し訳ありませんが、最初のビットを説明した –

関連する問題