Функция cot_import() в Cotonti CMF

предназначена для безопасного получения входных данных из глобальных массивов, выполняет валидацию и фильтрацию входных данных, предотвращая потенциальные атаки, такие как SQL-инъекции и XSS.

Функция cot_import() в Cotonti CMF

Функция cot_import() предназначена для безопасного получения входных данных из глобальных массивов $_GET, $_POST, $_COOKIE и $_SERVER. Она выполняет валидацию и фильтрацию входных данных, предотвращая потенциальные атаки, такие как SQL-инъекции и XSS.

Важность cot_import() в Cotonti CMF

Функция cot_import() играет ключевую роль в Cotonti, так как обеспечивает безопасное получение входных данных. Она защищает сайт от XSS-атак, SQL-инъекций, подмены данных и ошибок приведения типов.

При использовании глобальных массивов ($_GET, $_POST, $_COOKIE, $_REQUEST) вручную можно случайно пропустить проверку или неправильно обработать данные, что приведет к уязвимостям. cot_import() автоматизирует процесс фильтрации, помогая разработчикам писать безопасный код.

 

Преимущества cot_import()

Преимущество Описание
Защита от XSS Удаляет потенциально вредный HTML-код (<script> и т. д.) при использовании фильтра TXT или HTM.
Защита от SQL-инъекций Приводит данные к безопасным типам (INT, ALP, NUM), исключая некорректный ввод.
Удобство и читабельность Код становится более понятным и унифицированным.
Гибкость Поддержка разных источников (G, P, C, R, S, B).
Единый стиль обработки данных Использование одного метода вместо $_GET, $_POST, $_REQUEST упрощает поддержку кода.
Поддержка значений по умолчанию Позволяет задать default, если переменная отсутствует.

 

Недостатки cot_import()

Недостаток Описание
Дополнительная нагрузка Фильтрация требует небольших затрат на обработку (особенно ARR).
Не все фильтры идеальны Например, ALP пропускает только a-z, но не 0-9 и _.
Ограничения HTM Иногда требуется более сложная фильтрация HTML (например, через htmlspecialchars).

Однако эти недостатки не критичны и легко обходятся дополнительной обработкой.

 

 Рекомендации по использованию cot_import() в плагинах и модулях

1. Используйте cot_import() вместо $_GET, $_POST, $_COOKIE

 Плохо:


$id = $_GET['id'];

Хорошо:


$id = cot_import('id', 'G', 'INT');

Это предотвратит SQL-инъекции (id=1 OR 1=1).

 

2. Всегда указывайте значение по умолчанию

 Плохо:

$page = cot_import('page', 'G', 'INT');

Хорошо:

$page = cot_import('page', 'G', 'INT', 1);

Это предотвращает ошибки Undefined index.

 

3. Используйте ARR при работе с массивами

Плохо:

$items = $_POST['items']; // Возможна ошибка, если items не массив

Хорошо:

$items = cot_import('items', 'P', 'ARR');

Если items не массив, вернется null, а не ошибка.

 

4. Не используйте NOC, если данные идут в SQL

Плохо:

$user_input = cot_import('comment', 'P', 'NOC');
$sql = "INSERT INTO comments (text) VALUES ('$user_input')";

Хорошо:

$user_input = cot_import('comment', 'P', 'TXT'); 
$sql = "INSERT INTO comments (text) VALUES ('" . $db->prep($user_input) . "')";

 TXT уберет XSS, а $db->prep() – SQL-инъекции.

 

5. Используйте PSW для паролей

$password = cot_import('password', 'P', 'PSW');

В отличие от TXT, PSW не убирает спецсимволы, что позволяет использовать !@#$%^&*() в пароле.

 

6. Получение IP-адреса пользователя безопасным способом

$ip = cot_import('REMOTE_ADDR', 'S', 'TXT');

Лучше, чем $_SERVER['REMOTE_ADDR'], так как предотвращает возможные манипуляции.

 

 

Функция находится в файле:
 system/common.php

 

 Синтаксис:


cot_import($name, $source = 'G', $filter = 'TXT', $default = null)

 Параметры:

Параметр Тип данных Описание
$name string Имя переменной, которую нужно получить.
$source string Источник входных данных (G, P, C, R, B, S).
$filter string Метод фильтрации (INT, BOL, TXT, ARR, HTM, PSW, ALP, NUM, NOC).
$default mixed Значение по умолчанию, если переменная не найдена.

 

 

Доступные источники данных ($source)

Значение Описание
'G' Данные из $_GET (URL-параметры).
'P' Данные из $_POST (отправленные формы).
'C' Данные из $_COOKIE.
'R' Данные из $_REQUEST ($_GET + $_POST + $_COOKIE).
'B' Данные из php://input (используется для PUT и DELETE).
'S' Данные из $_SERVER.

 

 

Доступные фильтры ($filter)

Значение Описание
'INT' Целое число (intval).
'BOL' Булево значение (true или false).
'TXT' Строка без HTML (cot_import_prep).
'ARR' Массив.
'HTM' HTML-разметка (cot_import_prep).
'PSW' Пароль (строка, но без HTML-фильтрации).
'ALP' Только латинские буквы (a-z, A-Z).
'NUM' Только цифры (0-9).
'NOC' Без фильтрации, возвращает как есть.

 

 

Примеры использования:

Получение целого числа из $_GET


$id = cot_import('id', 'G', 'INT');

Если id отсутствует в $_GET, будет null. Если передано ?id=123abc, то вернется 123.

 

Получение строки из $_POST без HTML


$username = cot_import('username', 'P', 'TXT');

Если передано <script>alert('XSS');</script>, то тег <script> будет удален.

 

Получение массива из $_POST

$items = cot_import('items', 'P', 'ARR');

Подходит для работы с name="items[]" в HTML-формах.

 

Получение булевого значения из $_POST

$is_admin = cot_import('admin', 'P', 'BOL');

Вернет true, если admin=1 или admin=true, иначе false.

 

Получение данных из $_SERVER

$ip = cot_import('REMOTE_ADDR', 'S', 'TXT');

Получает IP-адрес пользователя.

 

Пример использования с default

$page = cot_import('page', 'G', 'INT', 1);

Если параметр page отсутствует в $_GET, то переменная получит значение 1.

 

Заключение

Функция cot_import() – мощный инструмент в Cotonti, который не только упрощает получение данных, но и делает их безопасными за счет встроенной фильтрации. Используйте её вместо $_GET, $_POST и других глобальных массивов для предотвращения атак.

Функция cot_import()обязательный инструмент в Cotonti. Она обеспечивает безопасность, удобство, гибкость и должна использоваться во всех плагинах и модулях.

Рекомендуется ВСЕГДА использовать её вместо $_GET, $_POST, $_REQUEST, особенно при работе с БД и пользовательскими данными.

 

4 minutes read Sodium Carbonate

Comments (0)

No comments yet
Only registered users can post new comments

Content author

webitproff

Offline

Sodium Carbonate

Last logged: 2026-09-05 18:03

About me briefly
Support and development of web projects on the CMF Cotonti: private messengers via the website, open and closed small social networks, trading platforms and marketplaces, freelance and services exchange portal, catalogs of goods from wholesale suppliers, dropshipping platforms, online stores, and much more.
View developments and download
Public portfolio of my works and developments
Telegram for messages
@webitproff
Telegram channel
@s/aBuyFILE
  • Page published: 2025-03-01 18:59
  • Last update: 2025-03-08 10:22

Similar pages

Функция cot_import в Cotonti
1 Разбор функции cot_import Функция cot_import используется для безопасного импорта данных из различных источников