Исполнение CGI-скриптов, программ и системных команд

SSI-директива exec с параметром cgi позволяет исполнять CGI-скрипты, расположенные на веб-узле. Так, результат обработки директивы
<!--#exec cgi="/cgi-bin/counter.cgi" -->
будет аналогичен действию рассмотренной в предыдущем разделе директивы
<!--#include virtual="/cgi-bin/counter.cgi" -->
Гораздо интереснее применение директивы exec с параметром cmd. В данном случае она позволяет выполнить любую программу или вызвать системную команду на машине, под управлением которой работает веб-сервер (разумеется, в рамках прав пользователя, от имени коего исполняется дочерний процесс сервера, обслуживающий текущее соединение).
Пример использования подобной директивы в Windows:
<!--#exec cmd="copy C:\data\data.txt D:" -->
Команда, заключенная в кавычки, выполняет копирование файла C:\data\data.txt на диск D:. Таким образом, использование этой директивы позволяет удаленно (при помощи доступа через Web) осуществить резервное копирование некоторых данных, что может пригодиться в каких-либо административных веб-интерфейсах.
Примечание
Свободой, предоставляемой директивой exec с параметром cmd, нужно распоряжаться с большой осторожностью — она таит в себе массу опасностей вплоть до возможной безвозвратной потери или порчи каких-либо данных в результате необдуманного (или злонамеренного) использования тех или иных программ или команд.
На подавляющем большинстве анонимных бесплатных хостингов использование директив SSI не допускается именно из соображений безопасности.


© 2008-2018 ОптимизацияВебСайтов.ру


Любое использование текстового и графического контента сайта без активной ссылки на источник не доскается.