Pergunta

Minha pergunta é bastante semelhante a isso Retornar o código de erro "correto" ou proteger a privacidade?, mas eu gostaria de ouvir algumas respostas diferentes.

Temos o site da maioria das páginas das quais podem ser visitadas pelo Usuário não logado. Mas quando não está conectado ao usuário tenta acessar o recurso (página) que requer autorização (o usuário deve ter função foorole), redirecionamos automaticamente -o para a página de login e, depois de fornecer as credenciais corretas, retornam aos recursos restritos. Que site deve fazer se o usuário tiver fornecido credenciais corretas, mas seus direitos de acesso não são suficientes (ele tem barrole, mas não foorole)?

Na implementação atual, retornamos a resposta HTTP 403 (proibido). Mas alguns desenvolvedores argumentam que o código 404 deve ser devolvido porque fornece melhor segurança - usuário não deve distinguir recursos não existentes e não acessíveis. Do ponto de segurança, talvez seja melhor retornar 404, mas na situação descrita o usuário foi redirecionado para a página de login e esse comportamento "Dicas" que essa página existe Portanto, não é muito logicamente retornar 404 (são meus pensamentos). Se o usuário já foi autorizado e tentar acessar recursos restritos (modificando diretamente o URL), bem, pode ser logicamente retornar o erro 404.

Talvez esse recurso "redirecionamento automático para login" não seja bom? Você pode me sugerir qual comportamento é mais "padrão/bom/fácil de usar/sem hacks" nessa situação?

Obrigado!

Foi útil?

Solução

Acredito que é mais adequado retornar um código de erro 403 preciso para falhas de login.

Quanto à sua questão de obscurecer quais arquivos realmente existem em geral "Segurança através da obscuridade" (palavras -chave) é considerada um modelo de segurança muito ruim e realmente não deve haver benefícios para um usuário conhecer esses URLs se eles não tiverem acesso a eles De qualquer forma (e se eles quebrarem o controle de acesso, presumo que haja uma maneira bastante simples de encontrar os URLs nos arquivos).

Se for importante ofuscar os nomes dos arquivos, no entanto, eu recomendaria devolver 403 para qualquer arquivo na pasta (existente ou não) para usuários não autenticados (essencialmente você está negando a eles acesso para ver o que está na pasta, então o código de erro parece legítimo para mim). Eu provavelmente recomendo fazer isso por meio de um manipulador da CustomErrors que distingue se você está conectado ou não antes de decidir quanto dizer -lhe (dessa maneira você ainda mantém erros precisos 404 para pessoas que são autenticadas) ou um httpmodule pegando a exceção a 404 joga e renderizando um resultado diferente para usuários autenticados versus não autenticados.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top