Мы можем взломать сайт, который просто хранит имя пользователя как переменную сеанса?

Привет, вы используете переменную, а не массив. Вы можете добавить что-то вроде этого

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

}

8
задан Abdulsattar Mohammed 25 January 2009 в 12:37
поделиться

2 ответа

Обычно Сессия является стороной сервера, но Если я так или иначе получаю идентификатор Сессии, я могу просто угнать его.

Я рекомендовал бы, по крайней мере, хранить любого IP и возможно также Агент пользователя, и в случае несоответствия, делал бы недействительным Сессию.

11
ответ дан 5 December 2019 в 14:06
поделиться

В основном Вы соглашаетесь с хранением вообще, Вы хотите на Сессии. Единственные протесты:

  • если Вы не используете защищенные соединения (как SSL), sessionId может быть сниффинговым и угнан. Это незначительно, потому что имя пользователя и передача могут также быть угнаны, и Вы подвергаетесь "человеку в средних" нападениях и т.д. Так в основном Ваша система прекрасна и обеспечивает низкую безопасность без SSL.
  • В статьях о PHP они упоминают некоторые проблемы с общим хостингом и перехватом сеанса. Я не уверен, верно ли это, таким образом, я отправил вопрос здесь.Править: Это беспокойство, кажется, реально, таким образом, необходимо будет использовать одно из обходных решений для хранения сессии (например, база данных) при использовании PHP.

В целом, тем не менее, большинство упомянутых проблем безопасности (включая нападения на XSS) не с хранением материала на Сессии, а скорее общих проблемах безопасности. Хранение идентификатора пользователя - или некоторый зашифрованный вид того же - на Сессии обычно довольно безопасно.

Самое главное: если бы необходимо было использовать собственный алгоритм, чтобы сгенерировать случайный код cookie для каждого пользователя, который несомненно имел бы больше дефектов безопасности (не являющийся экспертом), чем алгоритмы поколения сеансового ключа PHP, ASP.NET, направляющие, безотносительно...

Я мог найти более соответствующую кавычку Bruce Schneier, но этот сделает, "Никто не может копировать уверенность, что предложения RSA после 20 лет cryptanalytic рассматривают”.

1
ответ дан 5 December 2019 в 14:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: