zoukankan      html  css  js  c++  java
  • laravel 博客(csrf)

    使用laravel框架,经常会出现以下问题

    目前(我这里)三种laravel框架csrf认证的解决方法

    1、在提交页面中,将token字段加到meta中,如下

    <meta name="csrf-token" content="{{csrf_token()}}">

    2、在提交表单是表明csrf字段

       <form> {{csrf_field()}}  </form>  
    或者 :
    <input type="hidden" name="_token" value="{{ csrf_token() }}" />

      有时候需要使用ajax向后台传递数据,可使用以下方法

     $.post(
              "{{url('admin/index')}}/"+id,
                 {'_method':'delete',
                   '_token' :'{{csrf_token()}}'
                   },
               function(data){
                    if(data.status == 0){
                        window.location.reload();
                        layer.msg(data.msg, {icon: 1});
                     }else{
                         layer.msg(data.msg, {icon: 5});
                }
                        
            });

    3、直接中间件中加入不需要验证的路由,如下

    <?php
    
    namespace AppHttpMiddleware;
    
    use IlluminateFoundationHttpMiddlewareVerifyCsrfToken as Middleware;
    
    class VerifyCsrfToken extends Middleware
    {
        protected $except = [
            ‘index’
        ];
    }

    通过这种方法,再次从index提交表单,不进行csrf验证,laravel提供的额csrf验证是一种保护机制,尽量不要关闭。

    简单介绍一下csrf:取自于(百度百科)

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

    以此来记录编程之路,偶尔需要静下心来写点东西。
  • 相关阅读:
    区块链是怎么运行的
    区块链技术到底是什么鬼(二)
    区块链技术到底是什么鬼(一)
    关于SetTimer间隔小于OmTimer执行时间的问题
    区块链
    浏览器原生 form 表单POST 数据的两种方式
    动态调用dll遇到的问题
    转-tcp建立和释放详解
    浏览器使用ActiveX控件
    C可变参数函数 实现
  • 原文地址:https://www.cnblogs.com/yaradish/p/9457046.html
Copyright © 2011-2022 走看看