xenForo 2.2.15 Release Edition By XenForo.Info

xenForo 2.2.15 Release Edition By XenForo.Info 2.2.15

Нет прав для скачивания
john_j, Посмотрите эти темы, вдруг на толкнет на проблему, очень трудно что то сказать когда нет возможности воспроизвести проблему


 
Посмотрите эти темы, вдруг на толкнет на проблему, очень трудно что то сказать когда нет возможности воспроизвести проблему
Там только то, что много запросов от keep-alive.
У меня их тоже много, но не понятно почему на некоторые идет http-ответ 400. До обновления такое не наблюдал.
Я бы и там задал вопрос, но лицензия движка на поддержку закончилась уже более 3-ех лет назад.
Остаётся только ждать, может проблема у кого-то вылезет и начнут её решать, либо само рассосётся.
 
Там только то, что много запросов от keep-alive.
У меня их тоже много, но не понятно почему на некоторые идет http-ответ 400. До обновления такое не наблюдал.
Я бы и там задал вопрос, но лицензия движка на поддержку закончилась уже более 3-ех лет назад.
Остаётся только ждать, может проблема у кого-то вылезет и начнут её решать, либо само рассосётся.

А есть возможность посмотреть сообщение ошибки?
 
А все ли плагины установленные на моем форуме поддерживают версии php выше 8.0?
 
Это сделано. Не первый раз делаю агрейд )
Сейчас мне бы выяснить - это только у меня или у других тоже.
Проблему не могу повторить, так как от меня ошибок нет, они идут от других посетителей, но так как сайт подключен через CF не могу понять от каких именно. И не на 100% уверен что проблема возникла после обновления.


Я думаю что собака зарыта с оповещениями на форуме.
Разрабы как раз переделали их все.
В версии 2.2.15 изменены все шаблоны начинающиеся на "push_........."

Проблема в том, что сейчас трудно отследить.
Обновившиеся молчат как рыбы, поэтому не могу определиться это только у меня проблема с обновлением или у всех.
А на моем форуме у пользователей где сервер зафиксировал ошибку 400 от login/keep-alive, просто не получают какой тип оповещения.
Но это на уровне предположений.
Обновился , все стабильно пока , что.
 
Каждый раз я ищу тему про установку обновления и поиск ничего не дает. Дайте ссылку пожалуйста на тему как устанавливать обновления!
 
А есть возможность посмотреть сообщение ошибки?
Стандартная серверая ошибка 400.
Это же ошибка сервера, а не движка. Сервер не понял запрос.
В журналах движка её нет. Она фиксируется только на сервере.
Нечто такое, но посетителю она не отображается.
1707481862061.png
 
Последнее редактирование:
Каждый раз я ищу тему про установку обновления и поиск ничего не дает. Дайте ссылку пожалуйста на тему как устанавливать обновления!
Обновление движка или плагинов?

Стандартная серверая ошибка 400.
Это же ошибка сервера, а не движка. Сервер понял запрос.
В журналах движка её нет. Она фиксируется только на сервере.
Нечто такое
Посмотреть вложение 151583
Bad Request :
В запросе есть ошибка. В таком случае проблема на стороне пользователя. Нужно найти ошибку и исправить.

А ошибки сервера, это 500-е.
 
Стандартная серверая ошибка 400.
Это же ошибка сервера, а не движка. Сервер не понял запрос.
В журналах движка её нет. Она фиксируется только на сервере.
Нечто такое, но посетителю она не отображается.
Посмотреть вложение 151583
XF/Mvc/Controller

PHP:
public function assertValidCsrfToken($token = null, $validityPeriod = null)
    {
        if (!$this->validateCsrfToken($token, $error, $validityPeriod))
        {
            if ($error == 'no_cookie')
            {
                $error = \XF::phrase('cookies_required_to_use_this_site');
            }
            else
            {
                $error = \XF::phrase('security_error_occurred');
            }
            throw $this->exception($this->error($error, 400));
        }
    }

XF/ControllerPlugin/Login

PHP:
public function actionKeepAlive()
    {
        $this->controller->assertPostOnly();

        // if there's no cookie, then we need to generate a new one
        if ($this->request->getCookie('csrf'))
        {
            $this->controller->assertValidCsrfToken(null, 0); // ignore time errors and allow it to be updated in all cases
        }

        $json = [
            'csrf' => $this->app['csrf.token'],
            'time' => \XF::$time,
            'user_id' => \XF::visitor()->user_id,
        ];
        $view = $this->view();
        $view->setJsonParams($json);
        return $view;
    }
 
Последнее редактирование:
В журналах движка её нет.
У меня ошибка 400 фиксируется только на сервере.

А если попробовать "отловить" ?

после -
Код:
if (!$this->validateCsrfToken($token, $error, $validityPeriod))
               {
добавить - \XF::logError($error);

p.s. Не могу проверить, нет форума с активностью! (
 
Последнее редактирование модератором:
Нечто такое, но посетителю она не отображается.
нечто такое или всё таки такое?
если это ошибка в таком виде, то нужно искать проблему, в противном случае - это стандартное поведение движка и проблемы нет вообще

из разной длины ответа на скриншоте (если предпоследний столбик это длина ответа) могу сделать вывод, что выводятся разные сообщения, что намекает на то, что там всё-таки ответы от движка, а не статическая заглушка веб-сервера
 
нечто такое или всё таки такое?
если это ошибка в таком виде, то нужно искать проблему, в противном случае - это стандартное поведение движка и проблемы нет вообще

из разной длины ответа на скриншоте (если предпоследний столбик это длина ответа) могу сделать вывод, что выводятся разные сообщения, что намекает на то, что там всё-таки ответы от движка, а не статическая заглушка веб-сервера

Даже если сообщение там и есть, то оно не даст понимания ошибки!
Или - $error = \XF::phrase('cookies_required_to_use_this_site'),
или - $error = \XF::phrase('security_error_occurred');
 
Последнее редактирование модератором:
А если попробовать "отловить" ?

после -
Код:
if (!$this->validateCsrfToken($token, $error, $validityPeriod))
{
добавить - \XF::logError($error);

Попробовал, вот такие ошибки полезли в журнал ошибок движка

Код:
Журнал ошибок сервера
ErrorException: invalid src/XF/Error.php:77
Сгенерировано пользователем: Неизвестная учетная запись 9 Фев 2024 в 23:09
Трассировка стека
#0 src/XF.php(219): XF\Error->logError('invalid', false)
#1 src/XF/Mvc/Controller.php(159): XF::logError('invalid')
#2 src/XF/ControllerPlugin/Login.php(259): XF\Mvc\Controller->assertValidCsrfToken(NULL, 0)
#3 src/XF/Pub/Controller/Login.php(179): XF\ControllerPlugin\Login->actionKeepAlive()
#4 src/XF/Mvc/Dispatcher.php(352): XF\Pub\Controller\Login->actionKeepAlive(Object(XF\Mvc\ParameterBag))
#5 src/XF/Mvc/Dispatcher.php(259): XF\Mvc\Dispatcher->dispatchClass('XF:Login', 'KeepAlive', Object(XF\Mvc\RouteMatch), Object(XF\Pub\Controller\Login), NULL)
#6 src/XF/Mvc/Dispatcher.php(115): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(XF\Pub\Controller\Login), NULL)
#7 src/XF/Mvc/Dispatcher.php(57): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#8 src/XF/App.php(2487): XF\Mvc\Dispatcher->run()
#9 src/XF.php(524): XF\App->run()
#10 index.php(20): XF::runApp('XF\\Pub\\App')
#11 {main}


Содержимое запроса
array(4) {
  ["url"] => string(23) "/forum/login/keep-alive"
  ["referrer"] => string(50) "https://site.ru/forum/threads/1/"
  ["_GET"] => array(0) {
  }
  ["_POST"] => array(2) {
    ["_xfResponseType"] => string(4) "json"
    ["_xfToken"] => string(8) "********"
  }
}
 
Последнее редактирование модератором:
Попробовал, вот такие ошибки полезли в журнал ошибок движка

Журнал ошибок сервера
ErrorException: invalid src/XF/Error.php:77
Сгенерировано пользователем: Неизвестная учетная запись 9 Фев 2024 в 23:09
Трассировка стека
#0 src/XF.php(219): XF\Error->logError('invalid', false)
#1 src/XF/Mvc/Controller.php(159): XF::logError('invalid')
#2 src/XF/ControllerPlugin/Login.php(259): XF\Mvc\Controller->assertValidCsrfToken(NULL, 0)
#3 src/XF/Pub/Controller/Login.php(179): XF\ControllerPlugin\Login->actionKeepAlive()
#4 src/XF/Mvc/Dispatcher.php(352): XF\Pub\Controller\Login->actionKeepAlive(Object(XF\Mvc\ParameterBag))
#5 src/XF/Mvc/Dispatcher.php(259): XF\Mvc\Dispatcher->dispatchClass('XF:Login', 'KeepAlive', Object(XF\Mvc\RouteMatch), Object(XF\Pub\Controller\Login), NULL)
#6 src/XF/Mvc/Dispatcher.php(115): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(XF\Pub\Controller\Login), NULL)
#7 src/XF/Mvc/Dispatcher.php(57): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#8 src/XF/App.php(2487): XF\Mvc\Dispatcher->run()
#9 src/XF.php(524): XF\App->run()
#10 index.php(20): XF::runApp('XF\\Pub\\App')
#11 {main}


Содержимое запроса
array(4) {
["url"] => string(23) "/forum/login/keep-alive"
["referrer"] => string(50) " "
["_GET"] => array(0) {
}
["_POST"] => array(2) {
["_xfResponseType"] => string(4) "json"
["_xfToken"] => string(8) "********"
}
}

XF/Mvc/Controller

PHP:
public function validateCsrfToken($token = null, &$error = null, $validityPeriod = null)
    {
        if ($token === null)
        {
            $token = $this->filter('_xfToken', 'str');
            if (!$token)
            {
                $token = $this->request->getServer('HTTP_X_XF_CSRF_TOKEN', '');
            }
        }

        $token = strval($token);
        if (!$token)
        {
            $error = 'missing';
            return false;
        }

        $parts = explode(',', $token);
        if (count($parts) == 2)
        {
            list($tokenTime, $tokenValue) = $parts;

            $cookie = $this->request->getCookie('csrf');
            if (!$cookie)
            {
                $error = 'no_cookie';
                return false;
            }

            /** @var \Closure $csrfValidator */
            $csrfValidator = $this->app['csrf.validator'];

            if ($csrfValidator($cookie, $tokenTime) === $tokenValue)
            {
                if ($validityPeriod === null)
                {
                    $validityPeriod = 86400;
                }

                if ($validityPeriod > 0 && ($tokenTime + $validityPeriod) < \XF::$time)
                {
                    $error = 'expired';
                    return false;
                }

                return true;
            }
            else
            {
                $error = 'invalid';
                return false;
            }
        }
        else
        {
            $error = 'invalid';
            return false;
        }
    }

Думаю - с токеном не лады! (
 
Последнее редактирование:
А CSRF это случайно не (от англ. Сross Site Request Forgery — «Подделка межсайтовых запросов»)?
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу