Urgent.News

What's breaking now, across thousands of outlets.

Tech

5 lições de segurança que aprendi estudando um host temporário de arquivos

Estudei como funciona um projeto open-source de host temporário de arquivos, o Waifuvault, e criei um utilizando Laravel. Neste artigo, vou compartilhar 5 lições de segurança que são essenciais nesse tipo de aplicação e um pouco da experiência de criar esse projeto utilizando Laravel. Não confie no que é enviado pelo usuário Provavelmente você já deve ter ouvido essa frase e nesse tipo de…

Ao estudar o host temporário de arquivos open-source Waifuvault, utilizando Laravel, aprendi cinco lições essenciais de segurança. Primeiramente, confie em nada enviado pelo usuário. É crucial validar dados como o nome do arquivo, Content-Type e Content-Length, especialmente se recebe um arquivos de 10MB. Verifique o tamanho de dados no streaming para evitar registros órfãos e falhas enviesadas.

Segundamente, altere o nome do arquivo gerado pela aplicação, como um UUID, para prevenir sobrescritas e nomes maliciosos. Terceiramente, identifique o conteúdo real do arquivo, não apenas a extensão enviada. Verifique os primeiros bytes do conteúdo, que servem como uma assinatura do tipo de arquivo.

Quarto, mantenha o Storage e o Banco de dados em sincronia para evitar registros órfãos. Salve primeiro o arquivo no storage e, em seguida, insira os metadados no banco de dados, caso o insert falhe, limpe o arquivo do storage.

Por último, o acesso a arquivos deve passar pela aplicação para aplicar regras de negócio, como expiração e acesso controlado. Os arquivos expirados devem ser limpos por um cron job periódico, sem necessariamente serem excluídos imediatamente.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

How to Deep Merge JSON Files Safely in the Browser (100% Client-Side)

We've all been there: It's Friday at 4:55 PM. You just need to merge two simple .json config files for deployment. "This will take 30 seconds," you whisper — a naive lie to yourself.

  • Developer attempts to merge JSON files using Object.assign(), causing loss of timeout settings
  • Developer worries about sending sensitive data to untrusted online JSON merger sites
  • JoinJSON tool merges JSON files client-side, preserving privacy and highlighting errors

More from Thursday 15 October →