Как безопасно передать данные
У меня есть контроллер отвечающий за создание отзыва продавцу, и есть реквест принимающий данные с формы, в самой форме я передаю ид юзера,ид продавца и ид товара через скрытый input, как можно заменить данные input'ы, потому-что в них можно тупо поменять значение в консоле, тем самым можно сделать отзыв другому продавцу.
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class ReviewRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, mixed>
*/
public function rules()
{
return [
'status' => 'required',
'text' => 'required|max:162',
'user_id' => 'required',
'seller_id' => 'required',
'product_id' => 'required',
];
}
public function messages()
{
return [
'status.required'=>'Вы не выбрали статус отзыва',
'text.max'=>'Вы превысили количество символов в комментарии',
];
}
}
<?php
namespace App\Http\Controllers;
use App\Models\Review;
use App\Http\Requests\ReviewRequest;
class ReviewController extends Controller
{
public function __invoke(ReviewRequest $request)
{
$request['text'] = htmlspecialchars(strip_tags($request['text']));
if(!Review::where('product_id',$request['product_id'])->exists()) {
Review::create($request->validated());
return back()->with('succes','Вы оставили отзыв');
}
return back(302);
}
}
<form id="reviewForm" role="form" method="POST" action="{{ route('make-review') }}">
@csrf
{{ Form::hidden('user_id', Auth::user()->id) }}
{{ Form::hidden('seller_id', $info->seller_id) }}
{{ Form::hidden('product_id', $info->id) }}
<div class="err-log hide align-items-center p-2">
</div>
<div class="form-group p-2">
<label for="name" class="subLabel">Комментарий</label>
<textarea rows="6" cols="10" id="name" style="width: 100%;" type="text" class="review-input" name="text"></textarea>
</div>
<div class="review-btns p-2">
<input type="radio" value="0" id="negative-radio" name="status" style="position: absolute; left: -9999px">
<label for="negative-radio" class="negative">
<img src="../img/down.png" id="img-negative" alt="">
</label>
<input type="radio" value="1" id="positive-radio" name="status" style="position: absolute; left: -9999px">
<label for="positive-radio" class="positive">
<img src="../img/up.png" alt="" id="img-positive">
</label>
</div>
<div class="p-2">
<button type="submit" class="log-btn">Создать</button>
</div>
</form>