П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 179554 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 77480 раз(а).

Учебник HTML.
Просмотров 75143 раз(а).

Руководство по PHP5.
Просмотров 46178 раз(а).

Хостинг через призму DNS.
Просмотров 53422 раз(а).

Подборка текстов стандартных документов.
Просмотров 46163 раз(а).

Учебник PHP - Самоучитель
Просмотров 52322 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 52873 раз(а).

Внешние атаки...
Просмотров 42785 раз(а).

Учебник PHP.
Просмотров 38302 раз(а).

SSI в примерах.
Просмотров 28393 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





ГЛАВА 7. Файловый ввод/вывод и файловая система

Обратные апострофы

Существует и другой способ выполнения системных команд, не требующий вызова функций, — выполняемая команда заключается в обратные апострофы(` `), а результаты ее работы отображаются в браузере. Пример:

$output = `ls`;
print "<pre>$output</pre>";

Этот фрагмент выводит в браузер содержимое каталога, в котором находится сценарий.

Внутренний параметр ping -с 5(-п 5 в системе Windows) задает количество опросов сервера.

Если вы хотите просто вернуть неформатированные результаты выполнения команды, воспользуйтесь функцией passthru(), описанной ниже.

passthru()

Функция passthru() работает почти так же, как ехес(), за одним исключением — она автоматически выводит результаты выполнения команды.

Синтаксис функции passthru():


void passthru(string команда [, int возврат])

Если при вызове passthru() передается необязательный параметр возврат, этой переменной присваивается код возврата выполненной команды.

escapeshellcmd()

Функция escapeshellcmd() экранирует все потенциально опасные символы, которые могут быть введены пользователем(например, на форме HTML), для выполнения команд exec(), passthru(), system() или рореn().

Синтаксис:


string escapeshellcmd(string команда)

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

$user_input = `rm -rf *`; // Удалить родительский каталог и все его подкаталоги

ехес($user_input); // Выполнить $user_input !!!

Если не предпринять никаких мер предосторожности, такая команда приведет к катастрофе. Впрочем, можно воспользоваться функций escapeshellcmd() для экранирования пользовательского ввода:

$user_input = `rm - rf *`; // Удалить родительский каталог и все его подкаталоги

ехес( escapeshellcmd($user_input)); // Экранировать опасные символы

Функция escapeshellcmd() экранирует символ *, предотвращая катастрофические последствия выполнения команды.

Безопасность является одним из важнейших аспектов программирования в среде Web, поэтому я посвятил целую главу этой теме и ее отношению к программированию РНР. За дополнительной информацией обращайтесь к главе 16.

Назад | Содержание раздела | Общее Содержание | Вперед



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru