Функции Язык программирования PHP

getrusage

(PHP 3>= 3.0.7, PHP 4)

getrusage - получает использование текущего ресурса.

Описание

array getrusage ([int who])

Это интерфейс с getrusage(2). Она возвращает ассоциативный массив, содержащий данные, возвращённые системным вызовом. Если who это 1, getrusage будет вызвана с RUSAGE_CHILDREN.

Все вхождения доступны через их задокументированные имена полей.
Пример 1. Getrusage
$dat = getrusage(); echo $dat["ru_nswap"]; # число swaps echo $dat["ru_majflt"]; 
# число page faults echo $dat["ru_utime.tv_sec"]; # время работы пользователя 
(секунды) echo $dat["ru_utime.tv_usec"]; # время работы пользователя (микросекунды)

См. man-страницу о getrusage(2) вашей системы.


Назад Оглавление Вперёд
getmyuid Вверх ini_alter

Инъекция SQL

Многие web-разработчики не в курсе того, как запросы SQL могут быть подделаны, и считают, что SQL-запрос это надёжная команда.
SQL-запросы могут обойти управление доступом, стандартную аутентификацию и проверку авторизации, а некоторые SQL-запросы могут даже дать доступ к командам ОС хоста.

Direct SQL Command Injection это такая техника, когда взломщик создаёт или изменяет текущие команды SQL для получения доступа к скрытым данным, их переопределения или даже для выполнения опасных команд системного уровня на хосте БД. Это выполняется с помощью приложения, принимающего пользовательский ввод, и сочетания его со static-параметрами для построения SQL-запроса. Следующие примеры (к сожалению...) основаны на реальных фактах.

Благодаря отсутствию проверки ввода и соединения с БД или поведению superuser'а или того, кто может создавать пользователей, взломщик может создать superuser'а в вашей БД.
Пример 4-6. Разделение результата выполнения запроса на страницы...
и создание superuser'ов (PostgreSQL и MySQL)
$offset = argv[0]; // видите, никакой проверки ввода! $query = "SELECT id, 
name FROM products ORDER BY name LIMIT 20 OFFSET $offset;"; // с PostgreSQL $result 
= pg_exec($conn, $query); // с MySQL $result = mysql_query($query);