Введение

CGI:IRC — это программа CGI, написанная на Perl, которая обеспечивает доступ к IRC через веб-браузер. Она разработана с учетом гибкости и имеет множество применений, например, в качестве IRC-шлюза для сети IRC, чата для веб-сайта или для доступа к IRC, когда вы находитесь за строгим файрволом. CGI:IRC будет работать в большинстве браузеров, включая текстовые, такие как Links. Для полноценного использования большинства доступных функций необходима более новая версия; старые браузеры будут работать, но CGI:IRC будет использовать интерфейс в одном окне, а список пользователей будет обновляться медленнее.

Основные особенности

С современным браузером (с включенными JavaScript и DHTML), CGI:IRC представит интерфейс с вкладками, аналогичный GUI IRC-клиентам. Доступно автодополнение и сочетания клавиш, например, ALT+номер окна переключает на соответствующее окно. Некоторые распространенные функции IRC-клиентов недоступны, такие как скрипты, DCC-чат и передача файлов, из-за того, что CGI:IRC работает на основе веб-сервера.

Использование CGI:IRC

CGI:IRC используется многими IRC-сетями для предоставления пользователям возможности общаться в сети через веб-браузер. При использовании таким образом большинство функций отключаются из соображений безопасности, то есть пользователь не может подключиться к другому серверу, а доступ к некоторым каналам может быть ограничен. Из-за особенностей CGI:IRC пользователи не могут использовать DCC. То, что изначально казалось незначительной реализацией протокола IRC, все чаще рассматривается как способ обхода блокировок в IRC-чатах. В связи с этим некоторые IRC-серверы стали проявлять нетерпимость к CGI-соединениям. Усугубляет ситуацию тот факт, что не существует надежного способа отличить CGI-соединение от настоящего IRC-соединения. Некоторые IRC-серверы могут отображать истинное имя хоста подключающегося клиента, в то время как большинство показывают только имя хоста CGI:IRC-прокси. Однако это не обеспечивает достаточной конфиденциальности, поскольку IP-адрес пользователя представлен в шестнадцатеричном коде и включен в поля ident и/или реального имени. В CGI:IRC включен простой Perl-скрипт для декодирования IP-адреса. В зависимости от конфигурации CGI:IRC, он также может возвращать истинный IP-адрес пользователя (в дополнение к HTTP-заголовкам) в ответ на CTCP-запрос USERINFO.

Злоупотребление CGI:IRC

Как и другие открытые прокси, открытые установки CGI:IRC, не ограничивающие используемый сервер, также могут быть подвержены злоупотреблениям. Обычно CGI:IRC используют для создания множества клонов, которые применяются для организации DDoS-атак на IRC-сеть или конкретного пользователя. В ответ многие сети начали блокировать CGI:IRC-клиентов, за исключением тех, которые исходят от их собственного CGI:IRC-прокси (если таковой имеется).

На сервере

CGI:IRC работает на веб-сервере, таком как Apache, настроенном на запуск Perl, и использует доменные сокеты Unix. Он использует специальное HTTP-потоковое соединение при взаимодействии с веб-браузером пользователя, что снижает нагрузку на сеть, поскольку веб-страница пользователя не перерисовывается непрерывно. Ранние версии некоторых веб-браузеров, например Apple Safari, испытывали проблемы с потоковыми соединениями. CGI:IRC можно настроить для доступа к любому серверу и каналу или ограничить его отдельными экземплярами. Одно из ограничений CGI:IRC по отношению к некоторым IRC-серверам заключается в том, что "поскольку CGI:IRC действует как клиент, соединения от него кажутся исходящими с адреса веб-сервера. Это позволяет обходить брандмауэры, но если несколько клиентов подключаются с одного и того же адреса, некоторые IRC-серверы могут отклонять дополнительные подключения сверх установленного лимита".