На какой идет риск администратор, предоставляя возможность клиентам выполнять свои собственные CGI-скрипты? Например, web-сервер исполняет их не с правами root, то ничем не рискует, разве что предоставляет права пользователя владельцам своих скриптов, тем не менее, это не решает проблемы потенциальной угрозы предоставления этих прав злоумышленнику, обнаружившего недостатки скрипта.
Даже пользователь с прекрасной защитой может допустить целый ряд ошибок. Например, использовать систему для рассылки корреспонденции, другими словами “спамить” или для совершения атак на другие сайты. Это весьма актуально для бесплатных хостингов, у которых нет возможности проверки подлинности полученных данных, отправленных клиентом во время регистрации. А это дает возможность злоумышленнику сохранить свой статус анонимности и эффективно противостоять блокированию его аккаунта, потому что это не мешает еще раз зарегистрироваться под другим ником.
Рекомендуется установка межсетевых экранов, препятствующие установке исходящих соединений и предотвращает атаки. Вместе с тем, такой метод вызовет отток к провайдерам не оснащенных такой защитой и ограничит легальных пользователей.
В UNIX-системе любой пользователь имеет свободный доступ ко многим важным файлам сервера, злонамеренная манипуляция с которыми может привести большой вред системе. Например, известный файл “/etc/passwd” доступен всем пользователям для чтения данного сервера и, если администратор забыл “затенить” все пароли, то злоумышленник успеет за это отведенное время их украсть. Как известнои ОС Windows NT/2000 в этом вопросе прекрасно защищена, но не лишена недостатков, например, разрешает просмотр профилей безопасности для стандартного ввода пароля (профили также хранят историю всех паролей, с расчетом предотвратить их повторное использование; это старые пароли, но они позволяют раскрыть стратегию выбора паролей, что значительно облегчает взлом системы).
При предоставлении web-хостинга без прав на выполнение своих скриптов вызывает намного меньше проблем. В данном случае сервер сам обслуживает пользователя, а ОС даже и не знает об их существовании. “Нормальные” пользователи отличаются от клиентов, обслуживаемые сервером, клиентов обычно называются псевдопользователями.
У псевдопользователей нет прав и возможностей доступа к файлам, кроме тех, что разрешил сервер. Они в состоянии исполнить скрипты находящиеся на сервере, но создавать собственные скрипты не смогут. Администраторы предоставляют псевдопользователям определенное количество стандартных скриптов: доски объявлений, гостевые книги, счетчики.
Но это очень рискованно, малейшая ошибка скрипта может без проблем предоставить web-клиенту права со статусом в лучшем случае непривилегированного пользователя, а в худшем администратора.
Любой скрипт должен быть тщательно проверен, прежде чем его помещать на сервер.