Como saber de onde vem o POST?
05/12/2015
0
Tem alguma forma de descobrir de onde vem o POST. Pra evitar que outros sites enviam dados de outro formulário ou por cURL?
Já pensei em $_SERVER['HTTP_REFERER'], mas não é confiável. E sobre sessions, se o cara não executar qualquer página do site, vai ativar a session, fazendo assim com que ele possa enviar os dados sem problema?
Já pensei em $_SERVER['HTTP_REFERER'], mas não é confiável. E sobre sessions, se o cara não executar qualquer página do site, vai ativar a session, fazendo assim com que ele possa enviar os dados sem problema?
Jardson Sales
Curtir tópico
+ 0
Responder
Post mais votado
05/12/2015
Você cria uma session com um valor de hash aleatório somente na página do formulário, atribui o valor dessa session a um campo do tipo de hidden.
Quando receber os dados da submissão no PHP compara o valor enviado pelo hidden com o valor em session, se for igual processa a informação.
E mesmo não sendo 100% confiável também pode usar $_SERVER['HTTP_REFERER'], o segredo é a profundidade das camadas de segurança.
Quanto mais melhor, desde que você não sacrifique a usabilidade da sua página.
Esse site possui um catálogo com vários tipos de ataques e possíveis prevenções https://www.owasp.org/index.php/PHP_CSRF_Guard
Quando receber os dados da submissão no PHP compara o valor enviado pelo hidden com o valor em session, se for igual processa a informação.
E mesmo não sendo 100% confiável também pode usar $_SERVER['HTTP_REFERER'], o segredo é a profundidade das camadas de segurança.
Quanto mais melhor, desde que você não sacrifique a usabilidade da sua página.
Esse site possui um catálogo com vários tipos de ataques e possíveis prevenções https://www.owasp.org/index.php/PHP_CSRF_Guard
William
Responder
Mais Posts
05/12/2015
Jardson Sales
Muito obrigado William!
Realmente uma token em um campo hidden resolve tudo!
E REFERER realmente é inválido, porque o próprio cURL pode alterar o valor dela. Mas não deixa de ser uma segurança a mais...
Abraço
Realmente uma token em um campo hidden resolve tudo!
E REFERER realmente é inválido, porque o próprio cURL pode alterar o valor dela. Mas não deixa de ser uma segurança a mais...
Abraço
Responder
Clique aqui para fazer login e interagir na Comunidade :)