Содержимое каталога cgi-bin: Что еще может храниться там, кроме скриптов / исполняемых файлов CGI? - PullRequest
2 голосов
/ 16 декабря 2009

Какие файлы не должны / не должны храниться в папке / каталоге cgi-bin на веб-сервере?

Очевидно, что там могут храниться исполняемые скрипты / файлы, которые составляют веб-приложение, вызываемое из веб-браузера.

Но существует ли в отрасли общее мнение о том, что еще можно хранить там?

Есть ли очень веская причина, по которой там не разрешено ничего кроме скриптов / исполняемых файлов?

Я предпочитаю хранить все файлы, принадлежащие приложению, в каталоге / папке cgi-bin, как вложенную папку в нем - для каждого приложения.

Например, каталог cgi-bin / myapplication будет содержать:

  • скрипты / исполняемые файлы cgi
  • * 1016 файлы данных *
  • конфигурационные файлы

Это упрощает установку, а также упрощает шаги для параллельного запуска различных версий приложения, например, для ознакомления с новой версией.

Проблемы с безопасным доступом к файлам, не относящимся к сценариям, могут быть устранены с помощью правильных пользовательских разрешений, а также Apache .htaccess для контроля доступа к каталогу и файлам.

Казалось бы, популярные бесплатные приложения поддерживают этот подход "все под одним каталогом": версии bugzilla, бесплатный инструмент для отслеживания дефектов и функций, например, 3.4.4 предлагаются в этой структуре, в то время как более ранние версии, например, 2.x установил компоненты bugzilla как минимум в три папки.

Drupal, мощная и популярная бесплатная система управления контентом, также использует этот подход «все под одним каталогом», хотя и не использует папку cgi-bin, но подход тот же.

Что ты думаешь?

1 Ответ

3 голосов
/ 16 декабря 2009

В папке cgi-bin нет ничего особенного. Это похоже на любую общедоступную веб-папку, в которой установлен флаг «allow-script» (или эквивалент для вашего веб-сервера), что стало почти бессмысленным в мире PHP / JSP и подобных.

Вы должны хранить только файлы, которые вы хотите сделать общедоступными, в любой папке в вашем корне. Возможно, вы не хотите, чтобы ваши данные и настройки были доступны для загрузки любому пользователю в Интернете, поэтому не храните их в / cgi-bin

Некоторые серверы могут попытаться выполнить любой файл в / cgi-bin по запросу. Это может вызвать проблемы, особенно если текстовые файлы или файлы данных выполняются как сценарий оболочки.

Такие приложения, как Drupal, должны быть простыми в установке, независимо от того, какие разрешения они могут иметь на своем веб-хосте. Это главная причина, по которой все держится вместе. Если у вас есть возможность помещать файлы туда, куда вы хотите, всегда рекомендуется хранить непубличные файлы вне webroot. Если вы должны держать их под рутом, убедитесь, что вы используете конфигурацию вашего сервера, чтобы запретить публичный доступ к закрытым файлам.

...