É uma importante questão de segurança e tenho certeza que isso deve ser possível. Um exemplo simples: Você executa um portal comunitário. Os utilizadores estão registados e carregam as suas imagens. Seu aplicativo fornece regras de segurança sempre que uma imagem é permitida para ser exibida. Por exemplo, os usuários devem ser amigos em cada lado pelo sistema, a fim de que você pode ver alguém elses imagens enviadas. Aqui vem o problema: é possível que alguém rastreia os diretórios de imagem do seu servidor. Mas você quer proteger seus usuários de tais ataques. Se for possível colocar os dados binários de uma imagem diretamente na marcação HTML, você pode restringir o acesso do usuário de seus dirs de imagem ao usuário e agrupar sua aplicação web e passar os dados de imagem para o usuário e grupo do Apache diretamente em O HTML. A única fraqueza possível é a senha do usuário que seu aplicativo da Web é executado. Existe já uma possibilidade Se eu precisava de segurança no meu diretório de imagens que eu não iria expor o diretório em tudo. Em vez disso, meus atributos img src referenciariam uma página que levaria um ID de usuário e um id de imagem como um parâmetro. A página validaria que o usuário realmente tinha acesso para ver essa imagem. Se tudo bem, envie o binário de volta. Caso contrário, não envie nada. Além disso, eu não usaria ids adivinháveis. Em lugar de aderir a algo como base 64 codificados guids. Com HTML5 você poderia usar a tag de tela e JavaScript para fazer isso. Você poderia fazer algo com CSS ou um layout de tabela para desenhar uma imagem (provavelmente desempenho realmente ruim, resolução, portabilidade). De qualquer maneira, não há pessoas parar de tirar suas fotos. Eles poderiam pegar uma captura de tela e cortá-la. Como Chris mencionou em sua resposta, ter IDs de imagem longa para que o URL para cada imagem não é fácil de adivinhar ou força bruta é importante. E nenhuma lista de diretórios em seus diretórios de webserver também é. Você pode mover as imagens para fora da raiz do documento em um diretório particular e entregá-las através de seu aplicativo, que tem acesso a esse diretório. Cada vez que seu aplicativo gera uma tag de imagem, ele também gera um token de segurança de curta duração que deve ser especificado ao acessar uma determinada imagem: As chances são muito raras de que alguém force com força o token direito no momento certo com a imagem correta. Há pelo menos possibilidades de verificar o token em getImage: Acompanhe todas as tags de imagem em seu aplicativo e armazene registros em um banco de dados que vincule os tokens gerados aleatoriamente e os IDs de imagem aos usuários solicitantes. A ação getImage então verifica os parâmetros fornecidos contra esse banco de dados. Gere o token como uma soma de verificação (MD5, CRC, whatever) sobre o ID do usuário, o ID da imagem e talvez o dia atual do ano, e não se esqueça de misturar um sal unguessable. A ação getImage irá então recalcular a soma de verificação e verificá-la contra a especificada para verificar o acesso dos usuários. Este método produzirá menos sobrecarga do que o primeiro. Eu acho que é mais fácil apenas aplicar as restrições de acesso da página HTML de referência novamente para a ação quotgetImagequot como alguém escreveu acima. No entanto, o método de soma de verificação pode reduzir o impacto no desempenho, uma vez que não acede a quaisquer recursos externos para verificar a solicitação. Ndash the-banana-king Mar 12 10 às 2:21 Sua resposta 2017 Stack Exchange, Inc
No comments:
Post a Comment