Proteção de CSRF de Laravel

Proteção de CSRF de Laravel
A forma completa de CSRF é falsificação de solicitação cruzada. É um tipo de ataque on -line no qual o invasor envia solicitações como usuário autorizado para um sistema, obtendo informações de acesso de um usuário em particular desse sistema e executa diferentes tipos de atividades maliciosas usando a identidade desse usuário. O impacto desse ataque depende dos privilégios da vítima no sistema. Se a vítima for um usuário normal, afetará apenas os dados pessoais da vítima. Mas se a vítima é o administrador do sistema, o invasor poderá danificar todo o sistema. Os usuários de qualquer site de negócios, as redes sociais podem ser afetadas por este ataque. Este ataque pode ser evitado facilmente usando a proteção do Laravel CSRF para tornar o sistema mais seguro. O Laravel gera token CRSF para cada sessão de usuário ativa automaticamente, pela qual qualquer solicitação e aprovação são dadas ao usuário autenticado para o sistema. Como a proteção do CSRF do Laravel pode ser aplicada no aplicativo Laravel é mostrada neste tutorial.

Pré-requisitos:

Antes de iniciar este tutorial, você deve garantir que o Laravel seja instalado e funcionando corretamente no sistema. Eu instalei os seguintes aplicativos no sistema para fazer este tutorial.

  • Apache/2.4.41 (Ubuntu)
  • Php 7.4.3 (CLI)
  • Mariadb ver 15.1
  • Laravel Framework 7.25.0

Como implementar CSRF:

A proteção de CSRF pode ser implementada em Laravel, usando qualquer formulário HTML com uma forma oculta de token CSRF e a solicitação do usuário é validada usando o CSRF verificado middleware. Qualquer uma das seguintes opções pode ser usada para gerar um token CSRF.

A. @csrf

É uma diretiva de lâmina para gerar um campo de token que usará para verificação. Ele gera um campo de entrada oculto.

B. csrf_token ()

Esta função pode ser usada na metatag e no campo de entrada oculto da forma HTML. Ele gera uma string aleatória como um token CSRF.

C. CSRF_FIELD ()

Esta função cria um campo oculto para a forma html onde é usada e gera token de CSRF.

Os usos das opções acima são mostrados usando formulários HTML na próxima seção do tutorial.

Uso de @csrf:

Crie um arquivo de visualização de Laravel nomeado CSRF1.lâmina.php com o seguinte código HTML onde @csrf A diretiva é usada para gerar token de CSRF.

CSRF1.lâmina.php



Proteção de CSRF



Laravel CSRF Protection Method-1



@csrf










Adicione a seguinte rota no rede.php arquivo para carregar o arquivo de exibição no navegador. Quando o usuário vai dar CSRF1 Após o URL base, ele pesquisará CSRF1.lâmina.php arquivo no visualizar Pasta do projeto Laravel.

Route :: View ('/CSRF1', 'CSRF1');

Inicie o servidor Apache e execute o seguinte URL do navegador para carregar a visualização no navegador. Aqui, Laravelpro é o nome do projeto Laravel. Você também pode executar o servidor de desenvolvimento de Laravel usando o comando php artesan.

https: // localhost/laravelpro/public/csrf1

Se você inspecionar a página, obterá a saída como abaixo. Aqui, um campo oculto com o valor é gerado automaticamente por @csrf diretivo.

Uso de csrf_token ():

Crie um arquivo de visualização de Laravel nomeado CSRF2.lâmina.php com o seguinte código HTML onde o csrf_token () A função é usada para gerar token CSRF. Esta função é usada como o valor do atributo de valor do campo oculto e é usado com dois colchetes encaracolados.

CSRF2.lâmina.php



Proteção de CSRF



Laravel CSRF Método-2














Adicione a seguinte rota em a teia.php arquivo para carregar o arquivo de exibição no navegador. Como o primeiro método, quando o usuário dará CSRF2 Após o URL base, ele pesquisará CSRF2.lâmina.php arquivo no visualizar Pasta do projeto Laravel.

Route :: View ('/CSRF2', 'CSRF2');

Execute o seguinte URL de qualquer navegador como antes para carregar o segundo arquivo de visualização.

https: // localhost/laravelpro/public/csrf2

Se você inspecionar a página, obterá a saída como abaixo. Aqui, o valor do campo oculto é gerado usando o csrf_token () função.

Uso de csrf_field ():

Crie um arquivo de visualização de Laravel nomeado CSRF3.lâmina.php com o seguinte código HTML onde O CSRF_FIELD () A função é usada para gerar token CSRF. Esta função funciona como @csrf Diretiva e você não precisa adicionar um campo oculto na forma HTML. Também é usado com dois suportes encaracolados como csrf_token () função.

CSRF3.lâmina.php



Proteção de CSRF



Laravel CSRF Protection Method-3









csrf_field ()




Adicione a seguinte rota em a teia.php arquivo para carregar o arquivo de exibição no navegador. Como o primeiro método, quando o usuário dará CSRF3 Após o URL base, ele pesquisará CSRF3.lâmina.php arquivo no visualizar Pasta do projeto Laravel.

Route :: View ('/CSRF3', 'CSRF3');

Execute o seguinte URL de qualquer navegador como antes para carregar o segundo arquivo de visualização.

https: // localhost/laravelpro/public/csrf3

Se você inspecionar a página, obterá a saída como abaixo. Aqui, o valor do campo oculto é gerado usando o CSRF_FIELD () função.

Todos os três métodos de geração de token CSRF mostrados acima gera o mesmo valor de token para o mesmo navegador. Quando o invasor enviar qualquer solicitação para acessar o conteúdo de qualquer usuário autenticado que esteja online Verifiquecsrftoken Middleware corresponderá ao token da solicitação e ao token de sessão armazenado para validar a solicitação antes de manusear. Dessa forma, o ataque de CSRF pode ser evitado facilmente em Laravel. Essa proteção pode ser desativada do Laravel, removendo a entrada de App \ http \ middleware \ verifycsrftoken de $ middleware Array do arquivo app/http/kernel.php.

Conclusão:

O acesso não autorizado pode causar um grande impacto em qualquer aplicação e danificar os dados dele adequadamente. Portanto, a proteção de CSRF é muito importante para garantir qualquer aplicação em que os diferentes tipos de tarefas transnacionais sejam feitos. Este tutorial ajudará os desenvolvedores do Laravel a conhecer as maneiras de proteger seu aplicativo usando a proteção do CSRF.