Насколько безопасны веб-приложения на основе CGI? - PullRequest
3 голосов
/ 17 октября 2008

Очень известным основным недостатком использования CGI является низкая производительность веб-сервера. Но насколько безопасны приложения на основе CGI (в основном C / C ++)? Есть ли серьезные дыры в безопасности в архитектуре CGI, построенной на C / C ++?

Я хотел бы знать некоторые реальные реализации веб-приложений / веб-сайтов на основе CGI. Тот, о котором я знаю, это javaranch.com.

Ответы [ 4 ]

5 голосов
/ 17 октября 2008

Основная дыра в безопасности, которую я видел бы где угодно, включая C / C ++, заключалась в том, чтобы не использовать стандартную открытую библиотеку CGI, не читать ее документацию и все равно думать, что вы в безопасности.

  • не изобретай колесо. Используйте библиотеку CGI. В некоторых языках это встроено (вероятно, в PHP), в других оно включено (на ум приходит Perl), другим нужно, чтобы вы взяли его из других источников (C / C ++). Убедитесь, что вы знаете, что это такое, и что вы им пользуетесь. не попробуйте реализовать это самостоятельно. Если вам нужно спросить о безопасности, вы, как и я, не имеете права писать это.
  • Прочитайте документацию. Если вы используете хорошо зарекомендовавшую себя библиотеку, там будет документация по вопросам безопасности и тому, что вы можете сделать, чтобы их избежать.
  • Никогда не думай, что ты в безопасности. Я совершенно уверен, что не в безопасности, хотя я следовал всем правилам библиотеки CGI для Perl, правилам библиотеки интерфейса базы данных и т. Д. Но я все же предполагаю, что я не защищен, и сохраняю это в центре моего внимания, когда я что-то там делаю. Если я когда-нибудь стану экспертом по безопасности, возможно, я изменю свое предположение. Пока не уверен.

Безопасность всегда многогранна и всегда неполна. В любом виде программного обеспечения постоянно обнаруживаются дыры - программное обеспечение, которое раньше считалось безопасным. И теперь у нас гораздо больше передовых практик в области безопасности, чем, скажем, 15 лет назад. И у нас есть SELinux для большей безопасности.

Конечно, вопрос в том, достаточно ли у вас безопасности для вашего приложения? Достигнут ли разумные усилия разумный уровень безопасности? Конечно, именно поэтому я не использую C / C ++, но вместо этого я использую Perl. Требуется гораздо меньше усилий, чтобы гарантировать, что я не перезаписываю память в Perl, чем в C ++. Это уровень безопасности, без какой-либо реальной работы.

2 голосов
/ 17 октября 2008

CGI не более небезопасен, чем любой другой WSAPI. Все дело в том, что программа делает с кодом. Все, что делает CGI - это устанавливает переменные окружения и обрабатывает программу.

0 голосов
/ 03 июня 2009

Режим проверки заражения в Perl обеспечивает изумительный способ повысить безопасность.

0 голосов
/ 27 апреля 2009

Многие сайты основаны на CGI. Многие сайты PHP, расположенные на хостинге, работают в режиме CGI - mod_php трудно использовать в общей среде - без suid.

В целом, работа в качестве CGI имеет более низкую производительность, но лучше для безопасности - у вас нет доступа к внутренним компонентам веб-сервера (как с mod_perl и mod_php), поэтому использовать уязвимости сложнее. Если вы используете cgi-bin, неисполняемые файлы не видны (распространенная ошибка программистов PHP заключается в том, что у них есть библиотеки с расширением, например .inc, поэтому источник отображается при прямом запросе этого файла).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...