A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Informática Numaboa - Tutoriais e Programação

Perl+CGI - Um script de verdade

Ter

18

Nov

2008


19:46

(4 votos, média 4.00 de 5) 


A rotina principal do script

# ############################# # Script # ############################# &pegaInput; $topico = $campo{'topico'}; $topico =~ s/%20/ /g; if ($ENV{'REQUEST_METHOD'} eq 'GET') { &fazMaster(); } if ($ENV{'REQUEST_METHOD'} eq 'POST') { &mandaMaster; }

Identificando e depurando os parâmetros recebidos

Quando o script é acionado recebendo parâmetros deve-se SEMPRE OBSERVAR MEDIDAS DE SEGURANÇA para que o processamento de parâmetros viciados seja impedido. Para evitar que comandos ou fragmentos de código sejam transferidos ao nosso script por pessoas mal intencionadas (os crackers), utilizamo-nos das expressões regulares. Estas farão as substituições necessárias "limpando" os parâmetros que serão utilizados no processamento.

A criação de uma subrotina específica para este procedimento não é necessária, porém facilita manutenções posteriores além de deixar o texto mais claro.

A subrotina criada para tal fim foi denominada pegaInput e é chamada logo no começo do script através de &pegaInput.

sub pegaInput { (*fval) = @_ if @_ ; local ($buf); if ($ENV{'REQUEST_METHOD'} eq 'POST') { read(STDIN,$buf,$ENV{'CONTENT_LENGTH'}); } else { $buf=$ENV{'QUERY_STRING'}; } if ($buf eq "") { return 0 ; } else { @fval=split(/&/,$buf); foreach $i (0 .. $#fval) { ($nome,$valor)=split(/=/,$fval[$i],2); $valor =~ tr/+/ /; $valor =~ s/%(..)/pack("c",hex($1))/ge; $valor =~ s/

Informações adicionais