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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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





ГЛАВА 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