私のプロジェクトでは、Laravelを純粋にバックエンドAPIとして使用しています。すべてのフロントエンドはAngular javascriptで処理されます。現時点では、Laravelのルートに直接アクセスすることができ、ブラウザに表示されているJsonのすべてのデータを読み出すことができます。私はLaravelがAjaxリクエストにのみ応答するように制限を設けたい。Laravelルートに直接アクセスするのを防ぐ方法(つまり、非アヤックスリクエスト)
私はfilter.php
に制限を追加することで、Laravel 4の解決策を持つhereを読んでいます。しかし、Laravel 5.1以降、フィルタはもはや使用されておらず、ミドルウェアを使用して同じことを行うことができると私は信じています。ただし、フィルタからミドルウェアへの答えがLaravel 4のソリューションを変更するにはどうすればよいかわかりません。
Laravel 5.1ルートの直接アクセスを防止する方法について、あなたのアイデアを共有することはできますか? filter.php
を使用して
Laravel 4溶液:filter.php
宣言で このフィルタ:
Route::filter('isAJAX', function()
{
if (!Request::AJAX()) return Redirect::to('/')->with(array('route' => Request::path()));
});
次に、あなただけのグループにAJAX経由でアクセスするすべてのあなたのルートを置きます。あなたのroutes.phpで:
これは素晴らしいです!正確に私が必要なもの。あまりにもありがとう@JaviStolzこれは私が長い間このことに固執して以来、これは大きな助けとなっています。 Vハッピー:)私は今それを試してみましょう。 – Neel
これは、HTTPリクエストに 'X-Requested-With:XMLHttpRequest' HTTPヘッダを手動で追加することなく、簡単に回避できます。 – Epoc
もう一つは、isAjaxミドルウェアと一緒に特定のドメインからのリクエストのみを許可するためにcorsフィルタを使用することです。 –