Выполнение php-кода на страницах wordpress
Опубликовано: 08.10.2017
При создании сайта на движке wordpress иногда встречается такая ситуация, когда нужно выполнить php-код прямо на странице (в посте, виджете или текстовом блоке). Но при попытке выполнения любого php-кода он интерпретируется как обычный текст. Если попытаться выполнить следующий код:
1 Плагин Exec-PHP |
<?php echo "Это php-код"; ?> |
То в посте он так и выведется <?php echo «Это php-код»; ?>.
Для чего может понадобиться выполнять php-код в постах (статьях)? Да для чего угодно, можно дописывать стандартные функции wordpress в виде какого-нибудь необычного вывода меню или тех же постов, или вставить какие-нибудь дополнительные скрипты (в моем случае это был калькулятор на php).
«Разрешить» выполнение php-скриптов в постах wordpress можно с помощью плагина Exec-PHP .
Я рекомендую работать с этим плагином, т.к. множество других плагинов, позволяющих выполнять php-код, имеют очень серьезные уязвимости и их использование может повлечь за собой потерю вашего блога. Пример плагинов с уязвимостями:
WordPress WP-Syntax Plugin «Уязвимость существует из-за недостаточной обработки входных данных в параметре «test_filter[]» в сценарии wp-syntax/test/index.php, перед вызовом функции call_user_func_array(). Удаленный пользователь может с помощью специально сформированного запроса выполнить произвольный PHP код на целевой системе с привилегиями Web сервера. Для удачной эксплуатации уязвимости опция «register_globals» должна быть включена в конфигурационном файле PHP.» Подробнее можно почитать на securitylab.ru/vulnerability/384180.php WordPress wpStoreCart Plugin «Уязвимость существует из-за того, что сценарий wp-content/plugins/wpstorecart/php/upload.php позволяет осуществлять загрузку файлов с произвольными расширениями в каталог внутри сайта. Удаленный пользователь может выполнить произвольный PHP код.» Подробнее можно почитать на securitylab.ru/vulnerability/425794.php WordPress RBX Gallery Plugin «Уязвимость позволяет удаленному пользователю скомпрометировать целевую систему. Уязвимость существует из-за отсутствия в сценарии wp-content/plugins/rbxgallery/uploader.php ограничения на загрузку файлов в корневую директорию web-сервера. Удаленный пользователь может загрузить PHP и выполнить произвольный PHP сценарий.» Подробнее можно почитать на securitylab.ru/vulnerability/425853.phpОбзор плагина Exec-PHP.
Плагин «Exec-PHP» очень прост в использовании и установке. Его можно найти на сайте wordpress (wordpress.org) или прямо через внутренний поиск плагинов («Плагины»->»Добавить новый»). После установки в меню панели администратора появится новый пункт «Параметры»->»Exex-PHP» всего с одной настройкой — включением/выключением плагина.