Ao permitir que os usuários enviem arquivos ao seu servidor, você deve estar atento ao risco que eles podem apresentar: arquivos .exe podem chegar com vírus e infectar o computador de todos os usuários que fizerem o download. Um invasor pode criar um arquivo .asp e através de FSO ter controle completo sobre seus arquivos.
Para solucionar este problema você deve filtrar os arquivos enviados, aceitando somente aqueles com a extensão desejada. Por exemplo, se você tem um script com a finalidade de enviar imagens, programe-o para aceitar somente arquivos com extensões .jpg e .gif.
Essa restrição poderá ser feita através de um if simples ou com funções pré-existentes em alguns componentes de upload. Veja abaixo alguns exemplos:
Componente ASPSmartUpload
<%
Set objUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
objUpload.MaxFileSize = 30000
objUpload.AllowedFilesList = "jpg,gif" 'Função para restrição de tipos
objUpload.Upload
objUpload.Save("/diretorio")
Response.Write("Arquivo enviado com sucesso!")
%>
Verificação simples utilizando o ASPSmartUpload
<%
Set objUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
objUpload.MaxFileSize = 30000
Dim extensao = Right(objUpload.Name, Len(objUpload.Name) - 3)
If extensao = "jpg" or extensao = "gif" Then
objUpload.Upload
objUpload.Save("/diretorio")
Response.Write("Arquivo enviado com sucesso!")
Else
Response.Write("Tipo de arquivo inválido!")
End If
%>
<?
if (!empty($arquivo) and is_file($arquivo)) {
$caminho="upload/";
$caminho=$caminho.$arquivo_name;
if ((eregi(".gif$", $arquivo_name)) || (eregi(".jpg$", $arquivo_name))){
copy($arquivo,$caminho);
print "Arquivo enviado com sucesso!";
}
else{
print "Arquivo não enviado!";
print "Tipo de arquivo inválido!";
}
}
?>