PHP 8.1.x
БУС 24.300.ххх
Aspro: Next 1.8.x
comp_catalog_ajax.php – у меня работает это решение, функционал не ломается, атакующая сторона получает 403 ошибку.
Код |
---|
if ($_POST["AJAX_PARAMS"] && !is_array(unserialize(urldecode($_POST["AJAX_PARAMS"]), ["allowed_classes" => false]))) {
header('HTTP/1.1 403 Forbidden');
$APPLICATION->SetTitle('Error 403: Forbidden');
echo 'Error 403: Forbidden_1';
require_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/epilog_after.php');
die();
}
$arIncludeParams = ($bAjaxMode ? $_POST["AJAX_PARAMS"] : $arParamsTmp);
$arGlobalFilter = ($bAjaxMode ? unserialize(urldecode($_POST["GLOBAL_FILTER"]), ["allowed_classes" => false]) : array());
$arComponentParams = unserialize(urldecode($arIncludeParams), ["allowed_classes" => false]);
|
reload_backet_fly.php show_backet_fly.php show_basket_popup.php – не использую, функционал не проверял, но атакующая сторона получает 403 ошибку.
Код |
---|
if (!is_array(unserialize(urldecode($_REQUEST["PARAMS"]), ["allowed_classes" => false]))) {
header('HTTP/1.1 403 Forbidden');
$APPLICATION->SetTitle('Error 403: Forbidden');
echo 'Error 403: Forbidden';
require_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/epilog_after.php');
die();
}
$arParams = unserialize(urldecode($_REQUEST["PARAMS"]), ["allowed_classes" => false]);
|
Также атакуют comp_sections.php но у меня его нет. Предполагаю что там аналогичная ситуация.