[Cascavel-pm] renomear imagem durante upload

breno breno em rio.pm.org
Sábado Junho 19 16:42:25 PDT 2010


2010/6/19 Blabos de Blebe <blabos em gmail.com>:
> Correção,
>
> Nada de
>
>> ">$diretorio/$arquivo" para ">$diretorio/$cliente.jpg".
>
> Use sempre open com 3 argumentos.
>
> open my $file_handle, '>', "$dir/$filename.jpg";
>

Lembrando de tratar a exceção:

 open my $file_handle, '>', "$dir/$filename.jpg"
        or die "erro abrindo arquivo para escrita: $!";

se não quiser se preocupar com isso, bote um "use autodie" no inicio
do programa.

e, para maior portabilidade, crie caminhos para arquivos com
Path::Class ou File::Spec :-)

my $file = Path::Class::File->new( $dir, "$filename.jpg" );
my $file = File::Spec->catfile( $dir, "$filename.jpg" );

Finalmente, não se esqueça que está recebendo valores da Internet,
então trate de higienizá-los antes! Mesmo com o diretório base $dir
hardcoded no seu script, e se o sujeito passar, por exemplo,
'../../../../../../../../../etc/passwd' como nome de arquivo?

Pra não levar sustos, pode valer a pena rodar seu programa web em modo taint:

#!/usr/bin/perl -T


[]s

-b


Mais detalhes sobre a lista de discussão Cascavel-pm