1 Вопрос: Почему логика авторизации в дизайне панели управления OpenCart выглядит так (устарела)?

вопрос создан в Wed, May 8, 2019 12:00 AM

У нас есть множество методов аутентификации и авторизации (OAuth, 2FA и т. д.) для обеспечения безопасности нашей учетной записи на платформе электронной коммерции. Недавно я внимательно изучил логику входа в систему администратора OpenCart 3.0.2.0 и попытался выяснить, почему логика авторизации выглядит так:

  1. Хранение user_token в таблице сеансов в БД (Cool)
  2. Хранение зарегистрированного статуса в памяти PHP (круто)
  3. Храните user_token в браузере администратора (круто)
  4. Укажите срок действия токена (Cool).
  5. Продолжайте переносить user_token на переменную URL GET везде (???)

Мы могли бы проверить, является ли user_token от пользователя admin действительным и есть ли в нашей таблице сеансов в БД (которая проверяется при входе в систему), тогда мы могли бы отслеживать статус регистрации в памяти PHP, также мы можем проверить, если это сеанс истек.

Вопрос в том, почему нам по-прежнему необходимо хранить переменную user_token в URL-адресе get?

    
0
  1. OC - это открытая и бесплатная платформа электронной коммерции. Таким образом, вы можете бесплатно перепроектировать метод авторизации и даже продать его на торговой площадке opencart. И все будут счастливы.
    2019-05-08 19: 44: 53Z
  2. Если есть какие-либо проблемы с безопасностью, если мы удалим это?
    2019-05-10 00: 28: 43Z
1 ответ                              1                         

Переменная user_token была добавлена ​​позже после обсуждения в Интернете этой уязвимости.

Идея токена заключалась в том, чтобы запретить хакеру отправлять пользователю ссылку с вредоносным кодом в URL-адресе, которая использовала бы сеанс аутентификации администратора для взлома панели администратора opencart.

С токеном OpenCart проверяет его и выходит из системы администратора, если токен неверен.

    
0
2019-05-12 12: 25: 16Z
  1. Спасибо за ваш ответ! Что мне интересно, зачем нам нужно не только хранить токен в браузере пользователя и на нашем сервере, но и везде хранить переменную HTTP GET? Что, кажется, не имеет никакого смысла для меня ... запутался!
    2019-05-13 13: 04: 36Z
  2. Поскольку хакер может использовать уязвимость в коде панели администратора, отправив по электронной почте или отправив по скайпу ссылку владельцу магазина opencart (например, вам), который отправляет пароль панели администратора этому хакеру или что-то подобное при нажатии. если бы он не имел токена, администратор щелкнул бы по этой ссылке, и код был бы активирован. Но поскольку ссылка требует токена, менее вероятно, что хакер знает этот токен. это всего лишь мера безопасности.
    2019-05-13 14: 51: 25Z
  3. Спасибо! Так как же хакер может отправить мне ссылку на мою панель администратора и записать мой пароль /токен /что-то в этом роде?
    2019-05-14 01: 45: 35Z
  4. если бы он знал слабость внутри opencart, это можно было бы вызвать, вызвав некоторый метод, скажем yousite.com/admin/index.php?route=folder/somecontroller/somemethod без маркер, который вы, как администратор, вызовете этот метод при нажатии. Я мог бы послать вам по электронной почте (поскольку ваши контакты находятся на сайте) ссылку «у вас есть ошибка на этой странице, проверьте ...» и передайте этот URL-адрес, вы щелкнете по нему и активируете ожидаемый вами метод к. Конечно, в данный момент я не могу предоставить вам настоящий взлом, так как лично я на этом не зацикливаюсь. Но в этом и заключается вся идея токена. это заблокировало бы это.
    2019-05-14 19: 53: 31Z
источник размещен Вот