Многие фреймворки помогают обрабатывать XSS по-разному. Когда вы катаетесь самостоятельно или если есть какая-то проблема XSS, мы можем использовать filter_input_array (доступно в PHP 5> = 5.2.0, PHP 7.) Обычно я добавляю этот фрагмент к моему SessionController, потому что все вызовы пройдите туда до того, как какой-либо другой контроллер взаимодействует с данными. Таким образом, все входные данные пользователя дезинфицируются в одном центральном месте. Если это сделано в начале проекта или до того, как ваша база данных отравлена, у вас не должно быть никаких проблем во время выхода ... останавливает мусор, мусор.
/* Prevent XSS input */
$_GET = filter_input_array(INPUT_GET, FILTER_SANITIZE_STRING);
$_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);
/* I prefer not to use $_REQUEST...but for those who do: */
$_REQUEST = (array)$_POST + (array)$_GET + (array)$_REQUEST;
Вышеупомянутое удалит ВСЕ HTML & amp; скриптовые теги. Если вам нужно решение, которое позволяет безопасные метки на основе белого списка, посмотрите HTML Purifier .
Если ваша база данных уже отравлена или вы хотите иметь дело с XSS во время выхода, OWASP рекомендует создать пользовательскую функцию-обертку для echo
и использовать ее в любом случае вы выведете пользовательские значения:
//xss mitigation functions
function xssafe($data,$encoding='UTF-8')
{
return htmlspecialchars($data,ENT_QUOTES | ENT_HTML401,$encoding);
}
function xecho($data)
{
echo xssafe($data);
}
Если у вас есть отношение к Orderz, которое называется product, то оно довольно простое.
Куда вы хотите загрузить orderz
, вы хотите добавить продукты, например, так:
$orders = Order::with('ordersz.product')->where('user_id',$user_id)->get();
, а затем в строке с комментарием вы просто сделаете:
{{$pro->product->name}}<br>
Обязательно определите необходимые отношения в вашей модели заказа :
function product() {
return $this->hasOne('App\Product');
}
Очевидно, это подразумевает, что у вас есть модель для продукта, то, что вы должны есть.
Затем, по вашему мнению, вы можете получить ваш продукт, как следует, благодаря динамическим свойствам:
$pro->product->name;