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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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




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