Rumah >rangka kerja php >Laravel >Bagaimana untuk menetapkan tempoh sah akses imej dalam laravel

Bagaimana untuk menetapkan tempoh sah akses imej dalam laravel

PHPz
PHPzasal
2023-04-12 09:13:37884semak imbas

Laravel ialah rangka kerja pembangunan web yang sangat popular Isu yang berkaitan dengan muat naik imej, penyimpanan dan akses sering terlibat dalam proses pembangunan web. Menetapkan tempoh sah capaian imej adalah tugas yang sangat penting, yang boleh melindungi keselamatan imej dengan berkesan dan mengelakkan risiko keselamatan yang tidak perlu.

Untuk tetapan tempoh sah capaian imej rangka kerja Laravel, penyelesaian yang berbeza boleh diguna pakai. Artikel ini akan memperkenalkan beberapa penyelesaian yang biasa digunakan, dengan harapan dapat membantu pembangun Laravel.

1. Pelaksanaan melalui perisian tengah

Perisian tengah dalam rangka kerja Laravel ialah mekanisme yang mudah untuk memproses permintaan dan respons Tempoh sah akses imej boleh ditetapkan dalam perisian tengah.

Pertama, kita boleh mencipta middleware baharu, seperti ExpiresMiddleware, kodnya adalah seperti berikut:

<?php

namespace App\Http\Middleware;

use Closure;

class ExpiresMiddleware
{
    public function handle($request, Closure $next)
    {
        $response = $next($request);

        $response->header('Cache-Control', 'public, max-age=86400');
        $response->header('Expires', gmdate('D, d M Y H:i:s \G\M\T', time() + 86400));

        return $response;
    }
}

Dalam middleware ini, kami menetapkan Kawalan Cache bagi pengepala respons dan Tamat Tempoh padang. Antaranya, Cache-Control menentukan dasar cache sebagai awam dan tempoh sah ialah 86400 saat tamat tempoh menentukan masa tamat respons sebagai masa semasa + 86400 saat

Kami kemudiannya boleh menggunakan perisian tengah ini pada laluan atau pengawal dalam aplikasi Laravel kami, contohnya:

Route::get('/image/{id}', 'ImageController@show')->middleware('expires');

Dalam contoh ini, kami adalah /image/{id} Laluan ini menetapkan Tamat Tempoh Pertengahan Perisian Tengah.

Dengan tetapan di atas, pengepala respons imej yang dikembalikan dengan mengakses laluan ini akan mengandungi medan Cache-Control dan Tamat Tempoh Penyemak imbas akan cache imej dan meminta semula imej selepas 86400 saat.

2. Pelaksanaan melalui konfigurasi nginx

Selain menetapkan melalui perisian tengah Laravel, anda juga boleh menetapkan tempoh sah akses imej melalui konfigurasi nginx.

Pertama, kita perlu menambah konfigurasi sumber imej dalam fail konfigurasi nginx, contohnya:

location ~* \.(gif|jpg|png)$ {
    expires 1d;
}

Dalam contoh ini, kita mengkonfigurasi semua sumber imej gif, jpg dan png medan tamat tempoh ditetapkan untuk tamat tempoh dalam masa 1 hari. Dengan cara ini, apabila mengakses sumber imej, nginx akan mengembalikan pengepala respons yang mengandungi medan tamat tempoh, dan penyemak imbas akan cache imej dan meminta semula imej selepas 1 hari.

Melalui kaedah di atas, kami boleh menetapkan tempoh sah capaian imej yang fleksibel dalam fail konfigurasi nginx untuk meningkatkan keselamatan dan kelajuan akses imej.

Ringkasan:

Dalam proses pembangunan Laravel, menetapkan tempoh sah akses imej adalah tugas yang sangat penting. Dari segi pelaksanaan, kami boleh mengkonfigurasi tetapan yang berbeza melalui perisian tengah Laravel atau konfigurasi nginx.

Melalui pengenalan di atas, saya percaya anda telah memahami cara menetapkan tempoh sah capaian imej dalam Laravel, saya harap ia akan membantu amalan pembangunan Laravel anda.

Atas ialah kandungan terperinci Bagaimana untuk menetapkan tempoh sah akses imej dalam laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn