Laravel 다운로드를 방지하는 방법

PHPz
풀어 주다: 2023-04-21 10:37:57
원래의
611명이 탐색했습니다.

정보화 시대에는 필연적으로 데이터를 보호해야 하는 상황이 발생합니다. 웹 애플리케이션의 경우 기본적인 보안 조치 중 하나는 사용자나 불법 프로그램이 특정 파일을 다운로드하지 못하도록 하는 것입니다.

Laravel 프레임워크에서 파일 다운로드를 방지하는 방법은 비교적 간단합니다. 이 문서에서는 파일을 적절하게 보호하여 웹사이트를 더욱 안전하게 만들고 해커의 공격을 방지하는 여러 가지 방법을 소개합니다.

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(&#39;/download/{file_name}&#39;, &#39;DownloadController@downloadFile&#39;)->name('download.file');
로그인 후 복사

3단계 – 다운로드 생성 메서드

다음 단계는 GET 경로에서 호출할 수 있도록 DownloadController에 대한 새 메서드를 만드는 것입니다.

<?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(&#39;public&#39;)->get($fileName);

        return Response::download($file, $fileName);
    }
}
로그인 후 복사

이제 웹 브라우저에 다음 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. 파일을 직접 읽기

세 번째 방법은 가장 일반적인 방법으로 파일을 메모리로 직접 읽어 클라이언트에 보내는 것입니다.

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);
});
로그인 후 복사

Summary

Laravel의 파일 다운로드를 방지하는 방법과 관련하여 선택할 수 있는 여러 가지 구경이 있습니다. 처음에는 라우팅을 사용하여 다운로드할 수 있는 파일과 다운로드할 수 없는 파일을 제어할 수 있습니다. 그 외에도 Laravel의 File 클래스(file_get_contents())를 사용하거나 파일을 직접 읽는 두 가지 표준 방법이 있습니다. 파일 보호 및 다운로드 보안과 관련하여 웹 사이트를 안전하게 유지하는 것이 중요하며 올바르게 구현되면 이러한 방법을 사용하면 웹 사이트의 보안을 강화하고 가짜 공격을 피할 수 있습니다.

위 내용은 Laravel 다운로드를 방지하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿