情報化時代においては、データを保護する必要がある状況が必然的に発生します。 Web アプリケーションの基本的なセキュリティ対策の 1 つは、ユーザーまたは違法なプログラムが指定されたファイルをダウンロードできないようにすることです。
Laravel フレームワークでは、ファイルのダウンロードを防ぐ方法は比較的簡単です。この記事では、Web サイトの安全性を高め、ハッカーによる攻撃を避けるためにファイルを適切に保護するいくつかの方法を紹介します。
1. Laravel のルーティング メソッドを使用する
Laravel では、ルーティングを使用して、ダウンロードできるファイルとダウンロードできないファイルを制御できます。
ステップ 1 – コントローラーの作成
app/Http/Controllers ディレクトリに新しいコントローラーを作成します。次のコマンドを使用します:
php artisan make:controller DownloadController
これにより、Controllers フォルダーに新しいコントローラーが生成されます:
<?php namespace App\Http\Controllers; class DownloadController extends Controller { // }
ステップ 2 – ルートの作成
次のルートで呼び出すことができます。 DownloadController のメソッド:
Route::post('/download/{file_name}', 'DownloadController@downloadFile')->name('download.file');
ステップ 3 – ダウンロード メソッドの作成
次のステップでは、DownloadController の新しいメソッドを作成して、GET ルートから呼び出せるようにします。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Response; class DownloadController extends Controller { public function downloadFile($fileName) { $file = Storage::disk('public')->get($fileName); return Response::download($file, $fileName); } }
ここで、Web ブラウザに次の URL アドレスを入力してプログラムをテストできます:
http://127.0.0.1:8000/download/before-download-test-file.txt
2. File クラス メソッドを使用します
このメソッドは PHP の file_get_contents を使用します。 () 関数。ファイルにアクセスしてその内容を読み取る機能があります。
Route::get('/download', function(){ $file = public_path()."/test.zip"; $headers = array( 'Content-Type: application/octet-stream', ); return Response::download($file, 'test.zip', $headers); });
3. ファイルを直接読み取る
3 番目の方法は最も一般的な方法で、基本的な考え方は、ファイルをメモリに直接読み取り、クライアントに送信することです。
Route::get('/download', function(){ $file = public_path()."/test.zip"; $headers = array( 'Content-Type: application/octet-stream', ); return Response::make(file_get_contents($file), 200, $headers); });
概要
Laravel のファイルがダウンロードされないようにする方法については、いくつかの方法から選択できます。最初は、ルーティングを使用して、どのファイルをダウンロードできるか、できないかを制御できます。さらに、Laravel の File クラス (file_get_contents()) を使用する方法と、ファイルを直接読み取る方法の 2 つの標準的な方法があります。ファイル保護とダウンロードのセキュリティに関しては、Web サイトを安全に保つことが重要であり、これらの方法が正しく実装されていれば、Web サイトのセキュリティを強化し、偽の攻撃を回避できます。
以上がLaravelがダウンロードされないようにする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。