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.
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
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
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
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.