[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