laravel报错:TokenMismatchException in VerifyCsrfToken.php line 68:

laravel报错:TokenMismatchException in VerifyCsrfToken.php line 68:laravel报错:TokenMismatchException in VerifyCsrfToken.php line 68:

大家好,又见面了,我是你们的朋友全栈君。

csrf防护:

CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。

csrf详解

解决方式:
(1)csrf防护只有在web.php文件中有效。如果你只是添加路由,可以新建一个路由文件。
(2)找到php/Http/Middleware/VerifyCsrfToken.php例子如下:

class VerifyCsrfToken extends BaseVerifier
{ 
   
    /** * The URIs that should be excluded from CSRF verification. * CSRF【Cross-site request forgery跨站请求伪造】验证时,应排除的URI地址块,形如:'test/login'、'test/*' * @var array */
    protected $except = [
        'test/*',
    ];
}

(3)在post方式提交表单的时候,加上laravel自带的全局帮助函数csrf_token。

<input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">

(4)如果进行ajax的post请求的时候并没有提交form,表单,此时我们可以通过在meta中写入一些属性来金星csrf防护。

<head>
    <title>Laravel</title>
    <meta name="csrf-token" content="{ 
   { csrf_token() }}">

</head>

 $.ajax({ 
   
        headers: { 
   
          'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        },
        url: "{ 
   {url('/')}}",
        type: "post",
        dataType: "json",
 });

(5)解除csrf防护
找到php/Http/Middleware/VerifyCsrfToken.php例子如下:

public function handle($request, Closure $next)
  {
    // 使用CSRF
    return parent::handle($request, $next);
    // 禁用CSRF
    //return $next($request);
  }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/105888.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux下svn命令使用大全

    最近经常使用svn进行代码管理,这些命令老是记不住,得经常上网查,终于找了一个linux下svn命令使用大全:1、将文件checkout到本地目录 svncheckoutpath(path是服务器 上的目录)例如:svncheckoutsvn://192.168.1.1/pro/domain简写:svnco2、往版本库中添加新的文件 svnaddfile例如:svn…

    2022年4月11日
    31
  • Maven打包三种方法和常用命令大全

    Maven打包三种方法和常用命令大全目录maven常用打包命令1方法一:使用maven-jar-plugin和maven-dependency-plugin插件打包2方法二:使用maven-assembly-plugin插件打包在pom.xml中配置:3方法三:使用maven-shade-plugin插件打包在pom.xml中配置:maven常用打包命令1、mvncompile编译,将Java源程…

    2022年5月27日
    78
  • IIC软件协议及硬件知识汇总

    IIC软件协议及硬件知识汇总IIC软件协议及硬件相关知识,真的是非常齐全了!

    2022年7月22日
    10
  • 跨网段远程网络唤醒计算机,远程唤醒及跨网段远程唤醒

    跨网段远程网络唤醒计算机,远程唤醒及跨网段远程唤醒远程唤醒:1、除了在BIOS中开启远程唤醒功能外,有些主板要求开启以下功能:ACBackFunction(设置掉电重启后系统的状态)主板的来电唤醒功能比如一插电源线主机就启动看你想怎么设置了使用远程唤醒将“ACBACKFunction”设置为“Full-on”即可关机,开机,先前的状态(原来开时后来电就马上开机,原来关机后来电时还保持关机状态)2、另外,有些网卡还要在其属性中进行另外…

    2022年6月2日
    36
  • 775针cpu性能最好的_英特尔775针cpu性能排行

    775针cpu性能最好的_英特尔775针cpu性能排行排名型号评分1IntelCorei7995X@3.60GHz10,8622IntelXeonW3690@3.47GHz10,8283IntelCorei7990X@3.47GHz10,6544IntelCorei7980X@3.33GHz10,6075IntelXeonX5690@3.47GHz10,3146IntelCorei7980@3….

    2022年9月20日
    2
  • vue怎么和后端对接_vue搭配什么后端

    vue怎么和后端对接_vue搭配什么后端简单分享一下jeeplus框架部署liunx服务器跨域问题 ,因为我这个是前后端服务器分离所以配置了俩份java后端配置1.跨域后端配置nginx(图-1)上配置 server { listen 80; server_name xxx.xx.xxx; #后端服务域名 #charset koi8-r; #access_log logs/host.access.log main; locatio

    2022年8月19日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号