Günaydın 😀
Şimdi ben projemende sipariş alma kısmı oluşturmaya çalışıyorum sepet kısmında müşteri adres seçtikten sonra sipariş ver butona tıklayacak hem benim hemde müşterinin paneline sipariş düşecek. Bu kısımda kötü niyetli kişiler form içindeki select option kısmındaki value kısmındaki yeri değiştirerek sistemin hata vermesini sağlayabilir. Bende aşağıdaki şekilde bir önlem almak istedim acaba çok mu paranonyakça davranıyorum ? Bide eğer böyle birşeye gerek varsa bunu daha nasıl okunaklı ve kısa haline sokabilirim.
Saygılar
public function orderProcess(Request $request){
if (is_numeric($request->userAddress)){
if (Auth::check() && (int)$request->userAddress !== 0){
$status = false;
foreach(Auth::user()->address as $address){
if ($address->id === (int)$request->userAddress){
$status = true;
break;
}
}
if($status == true){
// sipariş alma işlemi kısmı
}else{
abort(404);
}
}else{
abort(404);
}
}else{
abort(404);
}
}
Edit 1 : .
.Rule oluştrayım dedim.
public function passes($attribute, $value)
{
if (is_numeric($value)) {
if (Auth::check() && (int)$value !== 0) {
foreach (Auth::user()->address as $address) {
if ($address->id === (int)$value) {
return true;
}
}
return false;
}else{
return false;
}
}else{
return false;
}
}
Controller Tarafı :
public function orderProcess(Request $request){
$validator = Validator::make($request->all(),[
'userAddress'=>new OrderProcessUserAddressCheck
]);
if ($validator->fails()){
return back()->withErrors($validator);
}else{
//işlemler
}
}