Безопасность при разработке модулей
В HostCMS существует ряд методов и функций, предназначенных для приведения входных данных к типу, который ожидает программист.
Работа с массивами
Класс Core_Array предназначен для безопасной работы с массивами. Для доступа к суперглобальным массивам $_GET, $_POST и $_REQUEST используйте, соответственно, методы getGet($keyName), getPost($keyName), getRequest($keyName). Для доступа к сессиям используйте getSession($keyName), для куков используйте getCookie($keyName).
Если значения не существовало, будет возвращено значение NULL, либо значение, переданное вторым аргументом, например:
// Возвращает значение параметра 'foo' из $_GET или NULL, если ключ не существует $value = Core_Array::getGet('foo');
// Возвращает значение параметра 'foo' из $_GET или 'bar', если ключ не существует $value = Core_Array::getGet('foo', 'bar');
Фильтрация внешних данных
Третий параметр методов Core_Array::get*** принимает название фильтра, которым должны быть обработаны внешние данные, например getGet($keyName, $defaultValue, $filter).
// Возвращает значение параметра 'foo' из $_GET или 0, если ключ не существует и приводит к целому $value = Core_Array::getGet('foo', 0, 'int');
Варианты фильтров, приведенные через запятую, являются равнозначными:
- str, string, strval — приведение к строке;
- trim — удаляет пробелы (или другие символы) из начала и конца строки;
- int, integer, intval — приведение к целому числу;
- float, floatval — приведение к числу с плавающей точкой;
- bool, boolean, boolval — приведение к логической переменной;
- array — приведение к массиву.