Dica 2022: erro de CSFR: O token de validação CSRF não é valido

Token CSRF inválido ou inexistente.

Essa mensagem de erro significa que seu navegador não pôde criar um cookie seguro, ou não pôde acessar aquele cookie para autorizar seu login. Isso pode ser causado do lado do cliente ou no lado da hospedagem, no Lado do cliente pode ser causado por bloqueadores de plugin, mas também pelo próprio navegador se ele não estiver autorizado a definir cookies:
Mensagem de erro CSRF token (todoist.com)

Verificando na própria hospedagem com um Script que criei para facilitar, crie um arquivo chamado: csrf.php e salve o código abaixo nele, depois executar na raiz da hospedagem, após os testes e ter resolvido o problema, basta exclui-lo.

<!DOCTYPE html>

<html>

<head>
  <title>Teste de Criação de CSRF Token Hospedagem...</title>
</head>

<body>

<?php

echo 'Teste de Criação de CSRF Token Hospedagem...'."<br/><br/>";

echo 'Executar no shell ssh da hospedagem: 755 -R /caminho_sistema_scriptcase'."<br/><br/>";

$_bytes = disk_free_space(".");
$_capacidade = array( 'B', 'KB', 'MB', 'GB', 'TB', 'EB', 'ZB', 'YB' );
$_base_mega = 1024;
$_calculo = min((int)log($_bytes , $_base_mega) , count($_capacidade) - 1);
echo 'Espaço Livre Disco: <br/>';
echo $_bytes . ' bytes <br/>';
echo sprintf('%1.2f' , $_bytes / pow($_base_mega,$_calculo)) . ' ' . $_capacidade[$_calculo] . '<br/><br/>';

$_Pasta_de_Sessao = session_save_path();

if (file_exists($_Pasta_de_Sessao)) {
    echo "php.ini > session.save_path = $_Pasta_de_Sessao ....OK...<br/><br/>";

    if (session_start() or die('<br/><br/>Erro ao Criar Sessão CSRF!!, ative chmod 755/777 para: $_Pasta_de_Sessao'));

    $_SESSION["CSRF_Token"] = bin2hex(random_bytes(32));

    if (!empty($_SESSION["CSRF_Token"])) {
        echo '<br/>'.'CSRF TOKEN Criado = '.$_SESSION["CSRF_Token"].'<br/>';
    } else {
        echo '<br/>'.'ERRO na Criação de CSRF TOKEN!!'.'<br/>';
    }

} else {
    echo "php.ini > session.save_path = $_Pasta_de_Sessao ....INEXISTENTE!! ou bloqueado para gravação!!, checar com sua hospedagem.<br/><br/>";
}


echo 'Verifique se a versão do PHP rodando é a mesma versão que foi gerada as aplicações do Scriptcase.<br/><br/>';

echo phpinfo(1)."<br/><br/>";


?>

</body>
</html>

Com isso fica mais fácil encontrar o que pode esta ocasionando o erro de CSRF inválido.

  • Verificar o espaço em disco, as permissões de gravação chmod 755 e versão do PHP rodando.
  • Pasta de sessão do PHP php.ini > session.save_path = tem que existir ser válida acessível e liberada para gravação chmod 755/777 do PHP.
5 Curtidas