Como saber de onde vem o POST?

05/12/2015

0

PHP

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?
Jardson Sales

Jardson Sales

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

William

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
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar