Eu recomendaria salvar os arquivos em um diretório não acessível pela Web ou criar um nome aleatório antes de salvá-lo no disco.
Eu tenho um site onde os usuários enviam arquivos por meio de um CMS.
por exemplo, link
Eu quero impedir que os usuários da Internet digitem esse URL em um navegador e acessem esses arquivos diretamente. Como posso fazer isso?
Ainda preciso permitir que o IIS leia, modifique e exclua esses arquivos por meio do CMS.
Eu recomendaria salvar os arquivos em um diretório não acessível pela Web ou criar um nome aleatório antes de salvá-lo no disco.
Que tal configurar o site para aceitar conexões somente a partir do endereço IP do CMS?
Acesse "solicitação de filtragem" e desative a URL específica (na guia "URL").
Para tornar isso seguro, você precisará implementá-lo em seu aplicativo de uma maneira diferente.
Salve os arquivos enviados em uma pasta que não seja acessível por meio de uma solicitação da web, por exemplo, em uma pasta externa D:\WebData\MyApp\Uploads
. Certifique-se de que a conta do Serviço de Rede tenha acesso "modificar" neste diretório (para seu aplicativo CMS).
Em seguida, implemente um manipulador HTTP no ASP.NET que verifica a sessão do usuário do CMS e permite que apenas baixar / modificar / acessar seus próprios arquivos.
vá para Regras de autorização e adicione uma regra de negação para todos os usuários na pasta desejada.