Функция cot_log_import в Cotonti

Функция cot_log_import предназначена для регистрации (логирования) ошибок, связанных с неправильным вводом данных.
Она записывает информацию о том, что проверка типа данных не прошла успешно.

/**
 * Logs wrong input
 *
 * @param string $s Source type
 * @param string $e Filter type
 * @param string $v Variable name
 * @param string $o Value
 */
function cot_log_import($s, $e, $v, $o)
{
    if (isset(Cot::$cfg['logWrongInput']) && !Cot::$cfg['logWrongInput']) {
        return;
    }

    if ($e == 'PSW') {
        $o = str_repeat('*', mb_strlen($o));
    }
    $text = 'A variable type check failed, expecting ' . $s . '/' . $e . " for '" . $v . "' : " . $o;
    cot_log($text, 'sec', 'input', 'error');
}

Параметры функции:

$s (string) — Тип источника данных (например, "POST", "GET", "COOKIE" и т.д.), который служит контекстом для данной записи. Этот параметр указывает, откуда данные поступили.
$e (string) — Тип фильтра, который ожидался для переменной (например, "PSW" для пароля или другие типы фильтров, такие как "INT", "STR" и т.д.).
$v (string) — Название переменной, которая не прошла проверку типа.
$o (string) — Значение переменной, которое не соответствует ожидаемому типу.


Алгоритм работы функции:


Проверка конфигурации:

Функция сначала проверяет конфигурационную настройку logWrongInput в глобальном массиве Cot::$cfg. Если эта настройка установлена в false, функция завершает выполнение, и логирование не происходит.
Обработка паролей:

Если фильтр ($e) равен "PSW", что означает, что проверяется пароль, то функция заменяет значение пароля на звездочки (*), чтобы не хранить в логах реальные пароли.

Создание текстового сообщения:

Создается строка текста, которая описывает ошибку. В сообщении указывается, что ожидался определенный тип для переменной, но было получено другое значение.

Запись в лог:

Функция cot_log используется для записи сообщения в системный лог с типом ошибки 'input' и классом ошибки 'error'. Это позволяет зафиксировать неправильный ввод данных.

Пример работы:

Если, например, для переменной $username ожидался тип строка, но пришло значение, которое не соответствует этому типу, вызов функции может выглядеть так:

 

cot_log_import('POST', 'STR', 'username', '12345');


 

Это создаст лог-сообщение, в котором будет указано, что для переменной username ожидалась строка, но пришло значение '12345'. Если это пароль, то будет записано сообщение с использованием звездочек вместо пароля.

Резюме:
Функция cot_log_import используется для логирования ошибок валидации входных данных в системе. Она полезна для отслеживания попыток неправильного ввода или несоответствия типов данных в формах и других запросах, что позволяет лучше отслеживать безопасность и корректность обработки данных на сайте.

2 минут чтения Administrator

Комментарии (0)

Комментарии отсутствуют
Добавление комментариев доступно только зарегистрированным пользователям

Автор контента

Administrator

Оффлайн

Administrator

Последняя авторизация: 05.07.2026 18:32

  • Страница размещена: 22.01.2025 11:56
  • Последнее обновление: 22.01.2025 11:56