Введение
CGI:IRC — это программа CGI, написанная на Perl, которая обеспечивает доступ к IRC через веб-браузер. Она разработана с учетом гибкости и имеет множество применений, например, в качестве IRC-шлюза для сети IRC, чата для веб-сайта или для доступа к IRC, когда вы находитесь за строгим файрволом. CGI:IRC будет работать в большинстве браузеров, включая текстовые, такие как Links. Для полноценного использования большинства доступных функций необходима более новая версия; старые браузеры будут работать, но CGI:IRC будет использовать интерфейс в одном окне, а список пользователей будет обновляться медленнее.
CGI:IRC is a CGI program written in Perl that allows access to IRC via a web browser. It is designed to be flexible and has many uses such as an IRC gateway for an IRC network, a chat room for a website or to access IRC when stuck behind a restrictive firewall. CGI:IRC will work in most browsers, including text based browsers such as Links. To make full use of most of the available features, a newer version is essential; older browsers will work, but CGI:IRC will use a single windowed interface instead and the names list will not update as quickly.
Основные особенности
С современным браузером (с включенными 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-серверы могут отклонять дополнительные подключения сверх установленного лимита".