Rumah > rangka kerja php > Laravel > Bagaimana untuk membolehkan ciri 'lumpuhkan tugasan kelompok' dalam laravel

Bagaimana untuk membolehkan ciri 'lumpuhkan tugasan kelompok' dalam laravel

PHPz
Lepaskan: 2023-04-09 00:30:02
asal
664 orang telah melayarinya

Dalam rangka kerja Laravel, tugasan bukan kelompok ialah ciri keselamatan yang penting, yang membantu menghalang pengguna berniat jahat daripada mengganggu data pangkalan data. Walau bagaimanapun, ciri ini kadangkala mempunyai kegunaan yang tidak jelas, menyebabkan kekeliruan di kalangan ramai pengaturcara.

Semasa penugasan kelompok, pengaturcara menyimpan data borang terus ke dalam pangkalan data melalui kaedah cipta atau kemas kini. Jika tiada pengesahan dilakukan, risiko yang besar akan berlaku akibat ancaman serius seperti serangan dan suntikan penggodam. Untuk menyelesaikan masalah ini, Laravel memperkenalkan ciri yang melumpuhkan tugasan kelompok.

Tugasan bukan kelompok bermakna apabila menggunakan kaedah cipta atau kemas kini, jika tiada medan yang dibenarkan untuk disimpan dinyatakan, program akan menapis semua medan haram secara automatik. Ciri ini bukan sahaja meningkatkan keselamatan program, tetapi juga mengukuhkan kekangan pembangunan pada pengaturcara: hanya medan yang dibenarkan secara jelas boleh disimpan ke pangkalan data.

Ciri ini boleh didayakan dengan baris kod yang sangat mudah. Gunakan atribut $guarded dalam model yang perlu melarang penugasan kelompok.

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    protected $guarded = [];
}
Salin selepas log masuk

Dalam contoh, sifat $guarded ialah tatasusunan kosong, bermakna semua medan boleh diedit.

Jika anda ingin membenarkan hanya medan tertentu disimpan, anda boleh menetapkan atribut $guarded kepada tatasusunan yang mengandungi semua medan yang tidak dibenarkan untuk diedit atau gunakan atribut $fillable.

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    protected $fillable = [&#39;name&#39;, &#39;email&#39;, &#39;password&#39;];
}
Salin selepas log masuk

Pendekatan yang lebih baik ialah melakukan pengesahan data dalam pengawal dan kemudian menyimpannya ke pangkalan data selepas pengesahan. Ini boleh mengelakkan beberapa salah operasi dan isu keselamatan.

<?php

namespace App\Http\Controllers;

use App\User;
use Illuminate\Http\Request;

class UserController extends Controller
{
    public function store(Request $request)
    {
        $validatedData = $request->validate([
            'name' => 'required|string',
            'email' => 'required|email|unique:users',
            'password' => 'required|confirmed',
        ]);

        $user = User::create($validatedData);

        return back()->with('success', 'User created successfully.');
    }
}
Salin selepas log masuk

Semua medan input disahkan di sini melalui kaedah pengesahan. Jika pengesahan berjaya, ia disimpan ke pangkalan data. Kod di atas bukan sahaja sangat selamat, tetapi juga sangat elegan.

Secara amnya, tugasan bukan kelompok Laravel ialah mekanisme sempurna yang boleh meningkatkan keselamatan program dengan berkesan. Kita harus memanfaatkan ciri ini sebaik mungkin untuk mengelakkan risiko yang tidak perlu dalam pembangunan.

Atas ialah kandungan terperinci Bagaimana untuk membolehkan ciri 'lumpuhkan tugasan kelompok' dalam laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan