Interfejs Common Gateway (CGI)

Common Gateway Interface (CGI) to zestaw standardów komunikacji między przeglądarką a programem działającym na serwerze, który umożliwia interakcję między użytkownikiem a serwerem. CGI umożliwia programowi wykonywalnemu dostęp do wszystkich informacji w żądaniach przychodzących od klientów. Program może następnie wygenerować wszystkie dane wyjściowe wymagane do utworzenia strony zwrotnej (kod HTML, kod skryptu, tekst itp.) I wysłać je z powrotem do klienta za pośrednictwem serwera WWW. Na przykład, jeśli użytkownik kliknie przycisk Mój koszyk, serwer odbierze to żądanie i wykona program CGI. Program CGI pobiera zawartość koszyka z bazy danych i zwraca ją na serwer. Serwer wysyła stronę HTML, która wyświetla zawartość koszyka na zakupy na ekranie użytkownika. Zwróć uwagę, że całe przetwarzanie odbywa się po stronie serwera (dlatego programy CGI i inne podobne nazywane są programami „po stronie serwera”).

Programy CGI można pisać w prawie każdym języku programowania, o ile są one zgodne ze standardami CGI. Obecnie Perl jest jednym z najpopularniejszych języków do tworzenia skryptów CGI. Ogólnie rzecz biorąc, programy CGI są używane z serwerami Unix. Podstawową wadą CGI jest to, że nie jest wysoce skalowalny, ponieważ dla każdego żądania musi być utworzony nowy proces, co ogranicza liczbę współbieżnych żądań, które można obsłużyć. Skrypty CGI najlepiej sprawdzają się w małych i średnich aplikacjach, które nie wymagają dużego ruchu użytkowników. Dostępne są również rozszerzenia serwera WWW, takie jak FastCGI, które poprawiają skalowalność CGI oraz SCGI, który jest prostszą wersją FastCGI (Doyle i Lopes, 2005). Skrypty CGI również mają problemy z bezpieczeństwem. W 2014 roku odkryto poważną lukę w zabezpieczeniach powłoki wiersza poleceń używanej przez wiele systemów operacyjnych Linux i Unix. Dziura ta, nazwana Shellshock, umożliwiła hakerom atakowanie podatnych na ataki skryptów CGI na serwerach WWW Apache. Tego typu problemy z bezpieczeństwem spowodowały, że niektóre usługi hostingowe, takie jak Rackspace, wymagały od swoich klientów korzystania z alternatyw dla CGI

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *