Às vezes, ao fazer o upload de Trojans através de programas, eles geralmente são disfarçados de imagens.
Primeiro, determine o tamanho do arquivo:
- iffile.Filesize <10then
- Response.write (<cript> alert ('Você não escolheu fazer upload de arquivo') </sCript>)
- Response.write (<cript> history.go (-1) </sCript>)
- Response.end ()
- endif
Depois de enviar o arquivo para o servidor, determine os caracteres de operação perigosos no arquivo do usuário:
- setMyfile = server.createObject (scripting.filesystemobject)
- setMyText = myfile.opentExtfile (filepath, 1) 'Leia o arquivo de texto
- stextall = lcase (mytext.readall)
- Mytext.close
- setMyfile = nada
- sstr = .getFolder | .CreateFolder | .DeleteFolder | .CreateDirectory | .DeleteDirectory | .Saveas
- | wscript.shell | script.encode | server
- snoString = split (sstr, |)
- fori = 0toubund (SnoString)
- ifinstr (stextall, snoString (i)) então
- setfiledel = server.createObject (script.filesystemoBject)
- Filedel.DeleteFileFilePath
- setfiledel = nada
- Response.Write (<Script> alert ('Há um problema com o arquivo que você carregou, o upload falhou'); window.close (); </script>)
- Response.end ()
- endif
- próximo
Como impedir que as fotos de sexo de Trojan enviem
Eu verifiquei este código sem nenhum problema, ele pode bloquear o upload de fotos de Trojan
- <%
- '***************************************************** ***** ***************
- 'CheckFileType Função é usada para verificar se o arquivo é um arquivo de imagem
- 'O nome do parâmetro é o caminho para o arquivo local
- 'Se for um arquivo jpeg, gif, bmp, png png, a função retorna true, caso contrário, retorna falsa
- '***************************************************** ***** ***************
- constadTypeBinary = 1
- dimjpg (1): jpg (0) = cbyte (& hff): jpg (1) = cbyte (& hd8)
- DIMBMP (1): BMP (0) = CBYTE (& H42): BMP (1) = CBYTE (& H4D)
- DIMPNG (3): png (0) = cbyte (& h89): png (1) = cbyte (& h50): png (2) = cbyte (& h4e): png (3) = cbyte (& h47)
- Dimgif (5): gif (0) = cbyte (& h47): gif (1) = cbyte (& h49): gif (2) = cbyte (& h46): gif (3) = cbyte (& h39): gif (4) = Cbyte (& h38): gif (5) = cbyte (& h61)
- Response.WritecheckFileType (Server.mappath (2.gif))
- FunctionCheckFileType (nome do arquivo)
- OnErrorReSumenext
- CheckFileType = false
- dimfstream, fileext, carimbo, i
- fileExt = MID (nome do arquivo, instrumento (nome do arquivo,.)+1)
- setfstream = server.createObject (adodb.stream)
- fStream.open
- fStream.Type = adTypeBinary
- fStream.LoadFromFileFilename
- fStream.Position = 0
- SelectCaseFileExt
- Casejpg, JPEG
- carimbo = fStream.read (2)
- fori = 0to1
- ifacb (midb (carimbo, i+1,1)) = jpg (i) thencheckfiletype = tredelsecheckFileType = false
- próximo
- casegif
- carimbo = fStream.read (6)
- fori = 0to5
- ifacb (midb (carimbo, i+1,1)) = gif (i) thencheckFiletype = tredelElECheckFileType = false
- próximo
- Casepng
- carimbo = fStream.read (4)
- fori = 0to3
- ifacb (midb (carimbo, i+1,1)) = png (i) thencheckFileType = tredelElEcheckFileType = false
- próximo
- casebmp
- carimbo = fStream.read (2)
- fori = 0to1
- ifacb (midb (carimbo, i+1,1)) = bmp (i) thencheckFileType = tredelElEcheckFileType = false
- próximo
- endSelect
- fStream.close
- setfsetem = nada
- iferr.number <> 0ThencheckFileType = false
- Função final
- %>
O exposto acima é a análise do princípio dos troianos, impedindo o upload de fotos do ASP.