Огляди, рейтинги та поради з вибору техніки 2026
Hi-News: Цифровий Світ » Компютери » Функція PHP shell_exec: виконання зовнішньої команди

Функція PHP shell_exec: виконання зовнішньої команди

28.06.2018, 15:27
365
0
Практично всі мови програмування включають в себе можливість запуску зовнішнього коду або команд оболонки операційної системи. Наявність такої можливості вважається правилом пристойності і повної функціональності мови. Використання такої можливості вважається загрозою безпеки і відсутністю повної функціональності програми, написаної мовою. PHP надає програмісту можливість запустити зовнішню команду і забезпечує передачу результатів запуску в змінну у вигляді тексту.

Операційна середовище і зовнішня команда

Вибір не особливо великий, але різноманітність варіантів може поставити в глухий кут. Якщо сервер, на якому запущений PHP, знаходиться під управлінням Windows, то особливих непередбачених ситуацій не буде. У сімействі линуксоидов можливі різні невизначеності.


У будь-якому випадку запуск зовнішнього коду - це загроза. Тому застосування можливості PHP shell_exec() - це продумане і зважене рішення. Зазвичай метою застосування такої можливості є періодичний запуск зовнішнього додатку, який збирає інформацію і переміщує її в папки веб-ресурсу. Часто використовується запуск зовнішнього коду для передачі статистики роботи сайту, фінансового звіту та ін. Варіантів, коли управління з веб-ресурсу вимагає «зовнішнього сприяння», дуже багато, але переважно, коли будь-який контакт з «зовнішнім середовищем» виповнюється «власними силами» без використання PHP shell_exec().

Синтаксис і логіка використання

Виклик зовнішнього коду виконується шляхом присвоювання результату виклику функції shell_exec() деякої змінної.
В даному випадку apache & PHP встановлені на робочому комп'ютері з Windows 10. Відразу виявилися проблеми з кирилицею і очевидно невідповідність потоків виводу команди операційній системі звичайного потоку, сприйманого браузером. Для коректного відображення виводу потрібно аналізувати роботу shell_exec(). В PHP приклади тестування повинні бути максимально жорсткими для досягнення безпечного використання.
Будь-яка операційна система допускає формування командного рядка, коли в одному рядку записується відразу кілька команд. Функція shell_exec допускає використання такої командного рядка. У всіх випадках застосування функції слід передбачити набір тестових прикладів, на якому перевірити безпеку використання звернення до операційної системи.
Схожі статті
Виразний JavaScript: опис можливостей
Виразний JavaScript: опис можливостей
Мова jаvascript істотно відрізняється від інших мов програмування, хоча синтаксично і семантично він схожий на інші мови. Основна його функція -
Функція PHP set_time_limit() - управління часом виконання скрипта
Функція PHP set_time_limit() - управління часом виконання скрипта
Управління часом виконання PHP-скрипта допомогою серверного мови має значення для цілей тестування і оптимізації алгоритму обробки даних. По суті,
Debug — що це? Опис інструменту
Debug — що це? Опис інструменту
Debug, або налагодження, у комп'ютерному програмуванні і розробки — це багатоетапний процес, який включає визначення проблеми, виявлення її
Прокомментировать
Натисніть на зображення, щоб оновити код, якщо він нерозбірливий