> На вэб-сервер пришел запрос "GET /blabla.pl HTTP......" > Что дальше делает сервер? > Обработал расширение, запустил перл (к примеру) с > параметрами в виде содержимого скрипта? Я прав (хотя бы в > общем)? Смотря какой сервер. На юниксах вообще не принято иметь расширение (ну по крайней мере необязательно, чтоб система тебя поняла). Юзер имеет права на файл. И если у юзера, под которым запущен сервак есть право на исполнение файла (когда сервак уже понял что это cgi), он будет исполняться, а как - это уже не забота сервака (в общем случае, потому как cgi можно написать хоть на C хоть на шелле, но насколько я помню некоторые моды апача обрабатывают cgi не производя потомков).
> Также интересует другой вопрос. Для чего путь к тому же > перлу прописывается внутри скрипта еще раз, ведь сервер > обработал уже расширение запрашиваемого файла в > соответствии со своими настройками? А для *.mcgi что запускать по твоему надо? Для юниха скрипт это обычный исполняемый файл и узнается он во-первых по праву на запуск для данного юзера (без него ничего не получится) а во вторых по сигнатуре #! в начале файла. Если такая сигнатура встречена, далее идет путь к интерпретатору этого скрипта, который и запускается системой для обработки скрипта.
> А если вместо пути к перлу прописать путь к башу? > Получается что на каждом хостинге потенциально открыт > халявный шел? Ну для начала следует сказать, что далеко не любой хостинг вообще предоставляет cgi. Во-вторых права на запуск легко настраиваются и если шелл и дается то или изначально (по ssh например без всяких извратов) или по криворукости админов. В-третьих, хотя я и не знаком лично с этой технологией, но серьезные хостеры вообще дают хостящемуся виртуальную машину и делай внутри нее что хочешь, корневой каталог у любого твоего процесса не будет пересекаться ни с другими машинами ни с собственно системой.
> В принципе, это только мысли под пиво :-) > Перла дома нет, проверить не на чем, качать долго, не > охото, выходные... > Хотелось бы услышать развернутый ответ кого-нибудь из > професионалов. Если я чего не так сказал, надеюсь проффесионалы меня поправят :-)
ЗЫ: Не стреляйте в пианиста - он играет как может :-)
На вэб-сервер пришел запрос "GET /blabla.pl HTTP......"
Что дальше делает сервер?
Обработал расширение, запустил перл (к примеру) с параметрами в виде содержимого скрипта? Я прав (хотя бы в общем)?
Также интересует другой вопрос. Для чего путь к тому же перлу прописывается внутри скрипта еще раз, ведь сервер обработал уже расширение запрашиваемого файла в соответствии со своими настройками?
А если вместо пути к перлу прописать путь к башу? Получается что на каждом хостинге потенциально открыт халявный шел?
В принципе, это только мысли под пиво :-)
Перла дома нет, проверить не на чем, качать долго, не охото, выходные...
Хотелось бы услышать развернутый ответ кого-нибудь из професионалов.
А можно ли узнать?18.05.03 04:28 Автор: amirul <Serge> Статус: The Elderman
> На вэб-сервер пришел запрос "GET /blabla.pl HTTP......" > Что дальше делает сервер? > Обработал расширение, запустил перл (к примеру) с > параметрами в виде содержимого скрипта? Я прав (хотя бы в > общем)? Смотря какой сервер. На юниксах вообще не принято иметь расширение (ну по крайней мере необязательно, чтоб система тебя поняла). Юзер имеет права на файл. И если у юзера, под которым запущен сервак есть право на исполнение файла (когда сервак уже понял что это cgi), он будет исполняться, а как - это уже не забота сервака (в общем случае, потому как cgi можно написать хоть на C хоть на шелле, но насколько я помню некоторые моды апача обрабатывают cgi не производя потомков).
> Также интересует другой вопрос. Для чего путь к тому же > перлу прописывается внутри скрипта еще раз, ведь сервер > обработал уже расширение запрашиваемого файла в > соответствии со своими настройками? А для *.mcgi что запускать по твоему надо? Для юниха скрипт это обычный исполняемый файл и узнается он во-первых по праву на запуск для данного юзера (без него ничего не получится) а во вторых по сигнатуре #! в начале файла. Если такая сигнатура встречена, далее идет путь к интерпретатору этого скрипта, который и запускается системой для обработки скрипта.
> А если вместо пути к перлу прописать путь к башу? > Получается что на каждом хостинге потенциально открыт > халявный шел? Ну для начала следует сказать, что далеко не любой хостинг вообще предоставляет cgi. Во-вторых права на запуск легко настраиваются и если шелл и дается то или изначально (по ssh например без всяких извратов) или по криворукости админов. В-третьих, хотя я и не знаком лично с этой технологией, но серьезные хостеры вообще дают хостящемуся виртуальную машину и делай внутри нее что хочешь, корневой каталог у любого твоего процесса не будет пересекаться ни с другими машинами ни с собственно системой.
> В принципе, это только мысли под пиво :-) > Перла дома нет, проверить не на чем, качать долго, не > охото, выходные... > Хотелось бы услышать развернутый ответ кого-нибудь из > професионалов. Если я чего не так сказал, надеюсь проффесионалы меня поправят :-)
ЗЫ: Не стреляйте в пианиста - он играет как может :-)