Protegendo Arquivos Transferidos por Upload

Varreduras de vírus, codificação/decodificação de arquivos e compactação/descompactação de dados BLOB ajudam a proteger arquivos transferidos por upload.

As interfaces das tarefas a seguir ajudam a proteger arquivos transferidos por upload no Web UI Framework e no Rich Client Platform:

  • Varredura de vírus
  • Codificação/Decodificação de arquivos

Varredura de vírus

É possível conectar lógica para varrer um arquivo transferido por upload para verificar a ocorrência de vírus. Use o arquivo yfs.properties para conectar o scanner. Uma implementação padrão de varredura de vírus não está disponível.

A interface de scanner de vírus inclui os métodos a seguir. Para obter mais informações, consulte o Javadoc.

  • public PLTVirusScanResponse scan(InputStream stream, PLTFileHandlerObj fileObject)

    Chamado primeiro durante uploads e downloads para varrer o fluxo de entrada do arquivo no estado em que se encontra durante a solicitação de upload/download.

  • public PLTVirusScanResponse scan(PLTFileHandlerObj fileObject)

    Chamado somente durante uploads para permitir a varredura do arquivo gravado no diretório temporário.

Codificação/Decodificação de arquivos

Os arquivos que são transferidos por upload podem ser codificados antes que eles sejam transmitidos para uma pasta temporária do servidor como parte do processo de upload. Estes arquivos são codificados por objetos da interface do IFileEncoderDecoder, que possui dois métodos (codificação e decodificação). Uma implementação padrão é fornecida para esta interface. Use a propriedade sc.file.upload.encoder do arquivo yfs.properties para conectar o codificador/decodificador.
Nota: o codificador padrão aumenta significativamente os tamanhos de arquivo..

O seguinte inclui informações básicas sobre cada método. Para obter mais informações, consulte o Javadoc.

  • public void encode(InputStream iStream, OutputStream oStream)

    Codifica o fluxo de entrada e coloca o mesmo no fluxo de saída. Chamado durante upload de arquivo.

  • public void decode(InputStream iStream, OutputStream oStream)

    Decodifica o fluxo de entrada e o coloca no fluxo de saída. Chamado durante o download de arquivo.

A codificação e a decodificação podem afetar o desempenho de forma negativa. Se a propriedade sc.file.upload.encoder não for configurada, a codificação e a decodificação serão ignoradas.

Compactação/Descompactação de Dados BLOB

É possível compactar e descompactar dados que são armazenados em colunas e tabelas. O conteúdo do arquivo em si, armazenado como bytes na tabela PLT_FILE_DATA, segue este mecanismo marcando a coluna como CompressionSupported=true e UseCompression=true.