Вопросы по куки приенительно к системе

#1 10 апреля 2021 в 13:38
Здравствуйте!
Куки, устанавливаемые двойкой, именуются по такому принципу: icms[name].
Получить их значения можно методом getCookie класса cmsUser. При этом аргумент, передаваемый методу, должен содержать только "name". Получить значений такой куки с помощью предопределённой $_COOKIE не получается ни по её полному имени ( icms[name]), ни по её части (name) (возможно, я просто не знаю как).
Предполагаю, что злоумышленнику добраться до системного метода гораздо сложнее, чем до предопределённых переменных.
Вопрос такой: верно ли предположение (т.е. всё дело в безопасности) или суть в другом?
Если ответ на вопрос "суть в другом" или "суть не только в безопасности", расширьте его, пожалуйста, пояснениями.
Заранее благодарен!
#2 10 апреля 2021 в 13:52
Нужно использовать другую переменную — PHP: $_COOKIE — Manual
Вот тут видно как ядро Двойки получает куки
public static function getCookie():
  1. $cookie = $_COOKIE['icms'][$key];
#3 10 апреля 2021 в 14:09

Нужно использовать другую переменную

WebMan
Машинальная ошибка у меня была. Конечно же я имел ввиду $_COOKIE.

$_COOKIE['icms'][$key]

WebMan
Спасибо!
Теперь вопрос из старттопика трансформируется в такой: а для чего нам тогда вообще метод getCookie(), если РНР даёт нам готовый ответ?
Тем более, что в системе подобные примеры ещё есть.
#4 10 апреля 2021 в 14:18

для чего нам тогда вообще метод getCookie()

Олег Васильевич я
1. Стандартизация работы с куками в системе.
2. Обёртка, позволяющая изменять внутреннюю логику работы с куками при сохранении работоспособности всего внешнего (стороннего) кода.
3. Упрощение работы с куками. Основные проверки (например, проверка наличия установленной куки) и приведения типов закладываются в этот метод. Программистам уже не нужно каждый раз это проверять и корректировать в своём коде.
4. Опциональный вызов коллбека.
#5 10 апреля 2021 в 14:52

а для чего нам тогда вообще метод getCookie(), если РНР даёт нам готовый ответ?

Олег Васильевич я
Вы задали хороший частный, по моему мнению, вопрос. Но его можно расширить. В PHP есть суперглобальные переменные
$GLOBALS
$_SERVER
$_GET
$_POST
$_FILES
$_COOKIE
$_SESSION
$_REQUEST
$_ENV
Все они доступны из любой точки программы. В современной практике считается злом прямое обращение к этим переменным. Почему так? Ответ гуглится, просто найдите понятный для вас конкретно.
#6 11 апреля 2021 в 07:13
Олег Васильевич я, Здравствуйте!

Вопрос такой: верно ли предположение (т.е. всё дело в безопасности) или суть в другом?

Группе, к которой вы принадлежите, запрещено просматривать этот скрытый текст
#7 11 апреля 2021 в 11:18

Подтверждаю, были украдены сессии

Inna
Поэтому и нужны разные обёртки. В php довольно сложно украсть переменную, если выполнены все необходимые проверки).
#8 11 апреля 2021 в 17:24

Я не программист

Inna

Мне программистки больше нравятся!
#9 12 апреля 2021 в 10:19

Подтверждаю, были украдены сессии. В релизах примерно 2019 г. появилась защита.

Inna
У меня все ходы записаны
<offtop>video</offtop>
#10 12 апреля 2021 в 11:18
Защита? shock
Просто удобное, в одном месте (ячейке массива), хранение куков. В остальном WebMan всё правильно расписал. Безопасность тут не при чем.

Подтверждаю, были украдены сессии.

Inna
Кто-нибудь знает, что такое кража сессии?) Риторический вопрос.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.