Использование каталогов с правами записи, в значительной степени неизбежно. Любое комплексное, а соответственно сложное CGI приложение окажется перед необходимостью записи в файловую систему. Примерами записи являются файлы паролей зарегистрировавшихся пользователей, генерация ключей, ведение log-файлов, временных файлов и т.д.
Проблема состоит из двух моментов. Первый заключается в том, что если пользователю даются права на запись, то он соответственно получает права на удаление. Таким образом, права на запись и на удаление оказываются в одних руках. Поэтому в терминах безопасности сервера они считаются равными. Вторым моментом является, то что хакер может использовать записываемую часть /cgi-bin каталога, чтобы добавить свой собственный CGI-скрипт. Особенную опасность это представляет для многопользовательских серверов типа тех, которые используют обычные провайдеры (ISP, [Internet Service Provider] поставщик услуг Internet (коммерческая фирма, предоставляющая индивидуальным пользователям доступ к службам сети Internet)). Хакеру требуется всего-лишь получить свой собственный, легальный account у тогоже ISP (провайдера), чтобы использовать или найти лазейку в системе безопасности. Для этого ему придется оплатить где-нибудь минут 20 легального доступа в Internet.
Ксати сказать, эта тактика получения account'а на сервере провайдера в особенности привлекает людей, вечно сующих нос в чужие дела - снуперов (от англ. snoop - "человек, вечно сующий нос в чужие дела" или в качестве глагола "шпионить", "выслеживать"). Если хакер может получить на вашем сервере account, то в вашем арсенале не так уж много способов, не позволить ему взять ваш каталог /cgi-bin и начать его исследовать, ввиду общедоступности сервера. |
Главным образом, решение этой проблемы является следующее правило. Никогда не храните каталоги и файлы с правами на запись в каталоге /cgi-bin. Все подобные файлы должны быть сохранены в каталогах типа тех, в которых вы храните ваши html документы или в каталогах типа /tmp, т.е.