PHP Laravel 5.8: Bagaimana memblokir alamat IP dari mengakses aplikasi

0
Dalam tutorial Laravel 5 ini, saya akan memberi tahu Anda cara membatasi alamat IP dari mengakses aplikasi kita.

Terkadang Anda memiliki pengunjung yang mengganggu atau beberapa pengikis situs, maka contoh ini akan berguna untuk memblokir pengguna tersebut agar tidak mengakses konten atau aplikasi situs Anda.

Anda dapat membatasi pengunjung jahat berdasarkan alamat IP atau Anda hanya dapat mengizinkan alamat ip tertentu dengan membuat middleware khusus di aplikasi Laravel.

Menggunakan middleware Laravel Anda dapat mengatur aturan pada rute misalnya, Anda dapat memangkas data permintaan Anda, Anda dapat memeriksa otorisasi pengguna berdasarkan jenisnya, dll.

Buat Middleware “IpMiddleware”

Pada langkah ini, saya akan membuat middleware “Middleware” untuk mengamankan apis atau konten webt.

Anda dapat membuat middleware dengan menjalankan perintah php artisan:

php artisan make:middleware IpMiddleware

Sekarang saya akan memperbarui kode di bawah ini di file middleware “IpMiddleware” yang baru dibuat :

app/Http/Middleware/IpMiddleware.php

<?php
   
namespace App\Http\Middleware;
   
use Closure;
   
class IpMiddleware
{
    
    public $restrictIps = ['103.212.146.23'];
        
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (in_array($request->ip(), $this->restrictIps)) {
    
            return response()->json(['you don't have permission to access this application.']);
        }
    
        return $next($request);
    }
}

Sekarang kita perlu memberi tahu Laravel untuk menjalankan middleware ini pada rute, jadi mari daftarkan middleware ini di Kernel.

app/Http/Kernel.php

protected $routeMiddleware = [   
    ......
    'restrictIp' => \App\Http\Middleware\IpMiddleware::class,
];

Now you can apply this middleware on your routes.

Untuk contoh ini, saya telah membuat api untuk menyimpan info pengguna dan saya telah menerapkan middleware ini di atasnya.

Route::middleware(['restrictIp'])->group(function () {
    Route::post('users', '[email protected]')    
});

Sekian dari saya ,Semoga Membantumu 😀

LEAVE A REPLY

Please enter your comment!
Please enter your name here