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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java.lang.NoClassDefFoundError: org/springframework/boot/Bootstrapper 异常解决「建议收藏」

    java.lang.NoClassDefFoundError: org/springframework/boot/Bootstrapper 异常解决「建议收藏」java.lang.NoClassDefFoundError:org/springframework/boot/Bootstrapper异常解决

    2022年7月20日
    15
  • 硬盘恢复分区_恢复分区和efi系统分区怎么删除

    硬盘恢复分区_恢复分区和efi系统分区怎么删除Windows系统在安装的时候,会自动为我们的磁盘划分一个恢复分区和一个EFI分区。如果后面不打算再用这些分区的时候,却发现无法删除。本文将提供解决方法。因为误操作会导致数据丢失,所以我将两种不同的解决方法分开成两篇文章以避免干扰:EFI分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作)EFI分区/恢复分区不可删除?你需要使用命令行了(全命令行操作)本文内容无法删…

    2022年8月11日
    44
  • 自我学习总结之——NFV

    自我学习总结之——NFVNFV–DFC1.什么是NFV?网络功能虚拟化NFV(NetworkFunctionsVirtualization)在NFV出现之前设备的专业化很突出,具体设备都有其专门的功能实现,而之后设备的控制平面与具体设备进行分离,不同设备的控制平面基于虚拟机,虚拟机基于云操作系统,这样当企业需要部署新业务时只需要在开放的虚拟机平台上创建相应的虚机,然后在虚拟机上安装相应功能的软件包即可。这种方式…

    2025年10月9日
    5
  • jq动态绑定点击事件「建议收藏」

    jq动态绑定点击事件「建议收藏」jq动态添加的元素需要添加点击事件可用delegateon添加1.delegate&amp;lt;divid=&quot;box&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;buttontype=&quot;button&quot;id=&quot;addbtn&quot;&amp;gt;添加&amp;lt;/button&amp

    2025年8月7日
    3
  • fflush和fsync的联系和区别「建议收藏」

    fflush和fsync的联系和区别「建议收藏」1.提供者fflush是libc.a中提供的方法,fsync是系统提供的系统调用。2.原形fflush接受一个参数FILE*.fflush(FILE*);fsync接受的时一个Int型的文件描述符。fsync(intfd);3.功能fflush:是把C库中的缓冲调用write函数写到磁盘[其实是写到内核的缓冲区]。fsync:是把内核缓冲刷到磁盘上。c库

    2022年5月13日
    39
  • linux查看权限命令

    linux查看权限命令查看权限命令查看目录的相关权限可以采用命令ls-lD,或者直接用ls-la如ls-lwwwt//这里表示查看www目录修改权限命令chmod777文件名1.chmod577/home/stuser-R2.umask-p02003.chownXXXXYYYY(XXXX为用户名YYYY为文件名)权限列表-rw——-(600)只有所有者才…

    2022年5月15日
    70

发表回复

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

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