-
Uma técnica muito útil contra esse tipo de ataque é o uso de um token, ela consiste em guardar uma chave na sessão no momento de exibir o formulário, e quando os dados forem postados é confirmado se a chave enviada é a mesma gravada na sessão anteriormente. Essa dica é sugerida para formulários simples e não substitui o uso de Captcha que é uma alternativa mais efetiva contra robôs spams.
Fonte - https://phpsp.org.br/mais-seguranca-em-aplicacoes-web-com-php/
-
Amigos e colegas de Auditório, o CESPE trocou o gabarito dessa questão de CERTO para ERRADO, com a seguinte justificativa:
"A utilização de hash tem como objetivo inibir ataques CSRF, mas não é a melhor forma de evitá-los, pois existem outros métodos para tanto como, por exemplo, a validação de tipo de arquivo."
Fonte (questão 119 - CARGO 1 ÁREA 4):
http://www.cespe.unb.br/concursos/ABIN_17/arquivos/ABIN_17_JUSTIFICATIVAS_DE_ALTERA____O_DE_GABARITO_1.PDF
Mas que diacho o CESPE fez ai? Alguém entendeu alguma coisa?
GABARITO OFICIAL DA BANCA ALTERADO DE CERTO PARA ERRADO.
-
uheuh certo, errado, certo, errado, a justificativa ajuda muito menos
-
SS Concurseiro... a assertiva estava ERRADA mesmo.
Exigir um token no request que "sobe" o arquivo pode garantir APENAS que ou o usuário está autenticado no sistema ou que o request não veio de um formulário armazenado em outro servidor.
Para validar a inclusão de um arquivo é necessário verificar seu MIME Type (bloqueando extensões e tipos indesejáveis), além de salvar esses arquivos em diretórios onde não haja permissão para execução.
-
Querido(a) Merrer reere, agradeço pelos seus esclarecimentos e resposta, agora faz mais sentido!
Então, destacando o erro da questão: Na situação de um URL/PHP que receba upload de arquivos, a maneira mais indicada (correto seria "uma das maneiras", não necessariamente a mais indicada) de evitar um ataque de inclusão de arquivo é validar a URL que está subindo o arquivo junto com um token.
Obrigado meu amigo(a), fique com o Papai do Céu.
-
Gabarito errado para os não assinantes
Se o site for vulnerável, ele abrir o link remoto, e assim, o usuário poderá prosseguir com o ataque.
Prevenção
Assim como os demais tipos de ataques, o RFI aproveita de entrada de dados de forma não segura. A melhor forma para evitar ataques RFI é validar todas as páginas que sejam incluídas.
abaixo tem uma matéria interessante:
https://www.pmgacademy.com/pt/blog/artigos/saiba-tudo-sobre-inclusao-de-arquivos-remotos-rfi
-
números mágicos + mime types = melhor chance de proteger contra upload malicioso (e mesmo assim pode ter mini-furos conforme o SO e as porcarias a mais que instalam no server)