Laravel’de “fillable” ve “guarded”, Eloquent modelleri ile ilişkilendirilen veritabanı tablolarının güvenliği ile ilgili iki farklı yaklaşımı temsil eden iki özelliktir:
1) Fillable (Doldurulabilir Alanlar):
“Fillable” özelliği, Eloquent modelinizin hangi sütunların kullanıcı girişi veya dışarıdan gelen veri ile doldurulabileceğini belirtmek için kullanılır. Bu sütunlar, veritabanı tablosuna yeni kayıtlar eklerken veya güncellerken “mass assignment” (toplulukla atama) ile doldurulabilir. Yani, kullanıcıdan gelen verilerin bu sütunlara atanmasına izin verilir.
Örneğin, aşağıdaki örnek, “name” ve “email” sütunlarının doldurulabilir olduğunu belirtir:
protected $fillable = ['name', 'email'];
2) Guarded (Korunan Alanlar):
“Guarded” özelliği, hangi sütunların kullanıcı girişi veya dışarıdan gelen veri ile doldurulamayacağını belirtmek için kullanılır. “Guarded” sütunlar, “mass assignment” işlemi sırasında kullanıcı tarafından veri atamasına veya güncellemesine izin vermez.
Örneğin, aşağıdaki örnek, “password” sütununu korunan (guarded) olarak belirtir:
protected $guarded = ['password'];
Genel olarak, “fillable” ve “guarded” özellikleri, güvenlik açısından önemlidir. “Fillable” kullanıldığında, sadece belirtilen sütunlar kullanıcı girişi ile doldurulabilir. “Guarded” kullanıldığında ise belirtilen sütunlar kullanıcı girişi ile doldurulamaz ve bu sütunlar manuel olarak doldurulmalıdır. Bu, kullanıcıların denetim dışındaki sütunlara erişimini sınırlamak ve güvenlik açıklarını önlemek için kullanışlıdır.