Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 3
            [id] => 539084
            [titulo] => Como saber de onde vem o POST?
            [dataCadastro] => DateTime Object
                (
                    [date] => 2015-12-05 14:21:30
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 269142
            [status] => A
            [isExample] => 
            [NomeUsuario] => William 
            [Apelido] => William (Devwilliam)
            [Foto] => 269142_20150809195205.jpg
            [Conteudo] => 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 [url:descricao=https://www.owasp.org/index.php/PHP_CSRF_Guard]https://www.owasp.org/index.php/PHP_CSRF_Guard[/url] ) )

Como saber de onde vem o POST?

PHP
Jardson Sales
   - 05 dez 2015

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?

Post mais votado

William (devwilliam)
   - 05 dez 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

3
|
0

Jardson Sales
   - 05 dez 2015

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

0
|
0