Привет, вы используете переменную, а не массив. Вы можете добавить что-то вроде этого
static private function productLastViewed($request, $item)
{
$product_viewed = session()->get('product_viewed');
if (!$product_viewed)
{
$product_viewed[]= $item; //grant item first to array
session()->put('product_viewed', $product_viewed); //session for array
}
else
{
$product_viewed[]= $item;
session()->push('product_viewed', $product_viewed); //push some item view to session array
}
return session()->get('product_viewed'); //return array in session
}
Обычно Сессия является стороной сервера, но Если я так или иначе получаю идентификатор Сессии, я могу просто угнать его.
Я рекомендовал бы, по крайней мере, хранить любого IP и возможно также Агент пользователя, и в случае несоответствия, делал бы недействительным Сессию.
В основном Вы соглашаетесь с хранением вообще, Вы хотите на Сессии. Единственные протесты:
В целом, тем не менее, большинство упомянутых проблем безопасности (включая нападения на XSS) не с хранением материала на Сессии, а скорее общих проблемах безопасности. Хранение идентификатора пользователя - или некоторый зашифрованный вид того же - на Сессии обычно довольно безопасно.
Самое главное: если бы необходимо было использовать собственный алгоритм, чтобы сгенерировать случайный код cookie для каждого пользователя, который несомненно имел бы больше дефектов безопасности (не являющийся экспертом), чем алгоритмы поколения сеансового ключа PHP, ASP.NET, направляющие, безотносительно...
Я мог найти более соответствующую кавычку Bruce Schneier, но этот сделает, "Никто не может копировать уверенность, что предложения RSA после 20 лет cryptanalytic рассматривают”.