Common Gateway Interface
O que é CGI ?
O Common Gateway Interface é um padrão
para interface de aplicativos externos, ou gateways,
com servidores de informação, tais como HTTP
ou servidores Web.
Um documento HTML que o Web daemon recupera é
estático, ou seja, existe em um estado constante: um arquivo texto não se altera. Um programa CGI,
por outro lado, é executado em tempo real, podendo produzir informação
dinâmica.
Para que usar CGI ?
Gateways são na realidade programas que manipulam pedidos
de informação e retornam ou geram (em tempo real) o documento apropriado. Com o CGI, seu servidor pode acessar informações
que não estão de uma forma legível para o cliente (ex. SQL
database), e age como gateway entre ambos para produzir alguma coisa
que o cliente possa usar. Gateways podem ser usadas para uma variedade
de propositos, os mais comuns são manipulação de
ISINDEX e requisição de formulário para HTTP.
Alguns exemplos do uso de CGI:
Converter páginas de manual de sistemas para HTML e enviar o resultado HTML para o cliente.
Fazer interface com WAIS e banco de dados archie, convertendo os resultados para HTML e enviando o resultado para o cliente.
Permitir ao usuário realimentar seu servidor atraves de um formulário HTML e um decodificador acompanhando o CGI.
Quais as principais regras dos programas CGI ?
Programas CGI, ou scripts, são programas executáveis que podem ser executados por si mesmo ( o que não é uma maneira segura ). Portanto existem algumas precauções de segurança que necessitam ser implementadas quando utilizando programas CGI.
As principais regras são:
- O script CGI tem que estar em um lugar determinado pelo servidor para os scripts CGI ou tem que ter um sufixo especial, que o servidor está configurado para reconhecer como um script CGI legal.
A maioria dos sistemas armazena scripts CGI em um diretório raiz do servidor HTTP, chamado cgi-bin, que é configurado de tal forma que, somente determinados usuários de confiança, possam gravar nele. Isto evita problemas óbvios de segurança, que surgem ao se permitir que usuários anônimos remotos executem qualquer coisa no sistema.
- O script pode recolher seus parâmetros, da entrada padrão (via teclado), das variáveis de ambientes ou de ambas.
- O script deve dar como saída, um dos três tipos de cabeçalho padrão, como uma string de texto normal.
- O script deve ser executável pelo usuário que o servidor tem como configurado. (Existe um usuário especial chamado "NOBODY" que é o usuário default para a maioria dos servidores Web. Você deve se certificar de que o usuário "NOBODY" ou o usuário para o qual o seu servidor está configurado para trabalhar, tem permissão para executar os seus scripts e ler/escrever em quaisquer arquivos que o script possa usar).
Diagrama de uma seção CGI
Esquema de processamento CGI bin básico
- O Browser manda um pedido
- O Servidor abre o Shell
- O Servidor envia o Script
- O Script é executado depois de outras aplicações (se chamado para isto)
Em que linguagens posso escrever esses CGI's ?
Gateways podem ser escritas em qualquer liguagem que permita ser executado no sistema, tais como:
- C/C++
- Fortran
- Perl
- TCL
- Unix Shell
- Visual Basic
- AppleScript
O programa CGI deve ser suportado pelo sistema operacional que funciona no seu servidor.
Menu | Introdução | Primeiros Passos
Formulários | Segurança | Glossário | Referências