Asp - Php - Cgi - Perl
Php Laravelde Dikkat Edilmesi Gerek Bir Açık Verme İhtimaliniz
Php Laravelde Dikkat Edilmesi Gerek Bir Açık Verme İhtimaliniz
-
Herkese selam,
Arada kendimi hacklemeye çalışırım ve hackledim de örnek vereyim
$inputs = $request->all(); User::create($inputs);
Admin olup olmadığınızla ilgili column varsa onu deneme yanılma yanılma yoluyla posta eklerseniz requestte olduğu için o alan ile kendinizi admin yapabiliyorsunuz. Ya da db'de ellenmesini istemediğiniz alan da düzenleniyor onun yerine
$inputs = $request->only("userName", "name", "lastName");
ya da
User::create([ "userName" => $request->userName, ...blablabla ]);
yapabilirsiniz. ki ben bunun zaman kaybettirdiğini ve zor olduğunu düşünüyorum array tanımlayıp duruyorsun.
ya da model de bu alanları ayarlayabilirsiniz.
Çoğunuz biliyorsunuzdur ama yine de söyleyeyim çünkü izlediğim çoğu laravel derslerinde request all yapıyorlar.
Bu arada önerilere açığım daha kolay yöntemler varsa çok sevinirim çünkü üçüncü yöntem bana çok zor geliyor teker teker array yazmak
Kolay gelsin
arkinfes tarafından 16/May/21 17:42 tarihinde düzenlenmiştir -
adamlar bunu düşünmüş zaten, direkt dokümandan : However, before using the
create
method, you will need to specify either afillable
orguarded
property on your model class. These properties are required because all Eloquent models are protected against mass assignment vulnerabilities by default. To learn more about mass assignment, please consult the mass assignment documentation.sen kendini bu şekilde hackleyebildiysen yanlış kullanıyor olabilirsin.
-
yolbulucu bunu yazdı
adamlar bunu düşünmüş zaten, direkt dokümandan : However, before using the
create
method, you will need to specify either afillable
orguarded
property on your model class. These properties are required because all Eloquent models are protected against mass assignment vulnerabilities by default. To learn more about mass assignment, please consult the mass assignment documentation.sen kendini bu şekilde hackleyebildiysen yanlış kullanıyor olabilirsin.
fillable olayını kullanıyorum ancak ben admin sütununu düzenlemek istediğim durumlarda ne yapıcam hocam?
kullanıcıya nasıl admin yetkisi vericem?
fillable komple yasaklamıyor mu o alanı
hocam bu durumu iyi farkettim ege üniveritesine iş yapıyoruz allah korusun öğrenci verilerine bir şey olsa götümüzden kan alırlar
-
arkinfes bunu yazdıyolbulucu bunu yazdı
adamlar bunu düşünmüş zaten, direkt dokümandan : However, before using the
create
method, you will need to specify either afillable
orguarded
property on your model class. These properties are required because all Eloquent models are protected against mass assignment vulnerabilities by default. To learn more about mass assignment, please consult the mass assignment documentation.sen kendini bu şekilde hackleyebildiysen yanlış kullanıyor olabilirsin.
fillable olayını kullanıyorum ancak ben admin sütununu düzenlemek istediğim durumlarda ne yapıcam hocam?
kullanıcıya nasıl admin yetkisi vericem?
fillable komple yasaklamıyor mu o alanı
fillable ın amacı mass assign ederken kullanacaklarını belirlemek. mass assignment dediği şey de Model::create($array)
$guarded da bunun tam tersini yapiyo. guardeda yazdikalrin mass assign edilemiyor.
yine dokümandan : So, to get started, you should define which model attributes you want to make mass assignable. You may do this using the
$fillable
property on the model. For example, let's make thename
attribute of ourFlight
model mass assignable:ingilizcen kötüyse translate ile çevir, baya güzel çeviriyo
https://laravel.com/docs/8.x/eloquent#mass-assignment
-
yolbulucu bunu yazdıarkinfes bunu yazdıyolbulucu bunu yazdı
adamlar bunu düşünmüş zaten, direkt dokümandan : However, before using the
create
method, you will need to specify either afillable
orguarded
property on your model class. These properties are required because all Eloquent models are protected against mass assignment vulnerabilities by default. To learn more about mass assignment, please consult the mass assignment documentation.sen kendini bu şekilde hackleyebildiysen yanlış kullanıyor olabilirsin.
fillable olayını kullanıyorum ancak ben admin sütununu düzenlemek istediğim durumlarda ne yapıcam hocam?
kullanıcıya nasıl admin yetkisi vericem?
fillable komple yasaklamıyor mu o alanı
fillable ın amacı mass assign ederken kullanacaklarını belirlemek. mass assignment dediği şey de Model::create($array)
$guarded da bunun tam tersini yapiyo. guardeda yazdikalrin mass assign edilemiyor.
yine dokümandan : So, to get started, you should define which model attributes you want to make mass assignable. You may do this using the
$fillable
property on the model. For example, let's make thename
attribute of ourFlight
model mass assignable:ingilizcen kötüyse translate ile çevir, baya güzel çeviriyo
https://laravel.com/docs/8.x/eloquent#mass-assignment
hocam bir bilale anlatır gibi :D
ben şimdi engelledim diyelim ama düzenlemek istediğim durumda ne olcak? yani o anlık fillable yapma şansım var mı? mesela normal user guarded olsun ama admine fillable olsun istiyorum.
ingilizcem eh işte dökümanda bulamadım disleksi var bir de
-
arkinfes bunu yazdıyolbulucu bunu yazdıarkinfes bunu yazdıyolbulucu bunu yazdı
adamlar bunu düşünmüş zaten, direkt dokümandan : However, before using the
create
method, you will need to specify either afillable
orguarded
property on your model class. These properties are required because all Eloquent models are protected against mass assignment vulnerabilities by default. To learn more about mass assignment, please consult the mass assignment documentation.sen kendini bu şekilde hackleyebildiysen yanlış kullanıyor olabilirsin.
fillable olayını kullanıyorum ancak ben admin sütununu düzenlemek istediğim durumlarda ne yapıcam hocam?
kullanıcıya nasıl admin yetkisi vericem?
fillable komple yasaklamıyor mu o alanı
fillable ın amacı mass assign ederken kullanacaklarını belirlemek. mass assignment dediği şey de Model::create($array)
$guarded da bunun tam tersini yapiyo. guardeda yazdikalrin mass assign edilemiyor.
yine dokümandan : So, to get started, you should define which model attributes you want to make mass assignable. You may do this using the
$fillable
property on the model. For example, let's make thename
attribute of ourFlight
model mass assignable:ingilizcen kötüyse translate ile çevir, baya güzel çeviriyo
https://laravel.com/docs/8.x/eloquent#mass-assignment
hocam bir bilale anlatır gibi :D
ben şimdi engelledim diyelim ama düzenlemek istediğim durumda ne olcak? yani o anlık fillable yapma şansım var mı? mesela normal user guarded olsun ama admine fillable olsun istiyorum.
ingilizcem eh işte dökümanda bulamadım disleksi var bir de
$u = new User();
$u->fill($request->all()) // burda requestteki datayi aldi, fillable arrayinde hangi fieldlar var onlarla doldurdu bu objeyi.
if(kullanici admin mi kontrol et){ //adam admin degilse hic girmesin buraya
$guarded_properties = ['is_admin','kek_borek'] // arrayde tutarsan daha kolay olur ilerde yeni biseyler eklemek.ya da bunu direkt modelden cekebilirsin falan.
foreach($guarded_properties as $gp){
$u->{$gp}= $request->input($gp) // is_admin ve kek_borek fillable da yoktu. elle verdik.
}
}
$u->save();
-
yolbulucu bunu yazdıarkinfes bunu yazdıyolbulucu bunu yazdıarkinfes bunu yazdıyolbulucu bunu yazdı
adamlar bunu düşünmüş zaten, direkt dokümandan : However, before using the
create
method, you will need to specify either afillable
orguarded
property on your model class. These properties are required because all Eloquent models are protected against mass assignment vulnerabilities by default. To learn more about mass assignment, please consult the mass assignment documentation.sen kendini bu şekilde hackleyebildiysen yanlış kullanıyor olabilirsin.
fillable olayını kullanıyorum ancak ben admin sütununu düzenlemek istediğim durumlarda ne yapıcam hocam?
kullanıcıya nasıl admin yetkisi vericem?
fillable komple yasaklamıyor mu o alanı
fillable ın amacı mass assign ederken kullanacaklarını belirlemek. mass assignment dediği şey de Model::create($array)
$guarded da bunun tam tersini yapiyo. guardeda yazdikalrin mass assign edilemiyor.
yine dokümandan : So, to get started, you should define which model attributes you want to make mass assignable. You may do this using the
$fillable
property on the model. For example, let's make thename
attribute of ourFlight
model mass assignable:ingilizcen kötüyse translate ile çevir, baya güzel çeviriyo
https://laravel.com/docs/8.x/eloquent#mass-assignment
hocam bir bilale anlatır gibi :D
ben şimdi engelledim diyelim ama düzenlemek istediğim durumda ne olcak? yani o anlık fillable yapma şansım var mı? mesela normal user guarded olsun ama admine fillable olsun istiyorum.
ingilizcem eh işte dökümanda bulamadım disleksi var bir de
$u = new User();
$u->fill($request->all()) // burda requestteki datayi aldi, fillable arrayinde hangi fieldlar var onlarla doldurdu bu objeyi.
if(kullanici admin mi kontrol et){ //adam admin degilse hic girmesin buraya
$guarded_properties = ['is_admin','kek_borek'] // arrayde tutarsan daha kolay olur ilerde yeni biseyler eklemek.ya da bunu direkt modelden cekebilirsin falan.
foreach($guarded_properties as $gp){
$u->{$gp}= $request->input($gp) // is_admin ve kek_borek fillable da yoktu. elle verdik.
}
}
$u->save();
adamsın hocam seviyorum seni
-
geçen gün bu konuyu github bildirmişti sağolsun :)
-
Model içinde fillable - guarded tanımlamalarınu yapıyorum,
FormRequest veya inline validation ile validate kullanıyorum,
$request->all() yerine $request->validated() kullanıyorum ,
Gelen dataları transformer veya DTO yapısı ile standartlaştırırak ilerliyorum ve gayette iyi gidiyor
-
fillable yi hiç kullanmıyorum hele create($array) methodunu hiç kullanmıyorum :)
-
coder2 bunu yazdı
Model içinde fillable - guarded tanımlamalarınu yapıyorum,
FormRequest veya inline validation ile validate kullanıyorum,
$request->all() yerine $request->validated() kullanıyorum ,
Gelen dataları transformer veya DTO yapısı ile standartlaştırırak ilerliyorum ve gayette iyi gidiyor
DTO için bir eklenti mi kullanıyorsun hocam? .netteki gibi tanımlanamıyor diye biliyorum.
Hangi eklentiyi önerirsin?