📜  拉拉维尔 | CSRF 保护

📅  最后修改于: 2022-05-13 01:56:32.028000             🧑  作者: Mango

拉拉维尔 | CSRF 保护

跨站点请求伪造 (CSRF)是一种攻击类型,攻击者在系统信任的授权用户的帮助下向系统发送请求。

Laravel 通过生成CSRF 令牌来保护CSRF攻击。这个CSRF 令牌是为每个用户自动生成的。这个令牌只不过是一个随机字符串,由 Laravel 应用程序管理以验证用户请求。

如何使用:通过指定 CSRF 令牌的隐藏表单字段,此 CSRF 令牌保护可以应用于 Laravel 应用程序中的任何 HTML 表单。请求由 CSRF VerifyCsrfToken中间件自动验证。

您可以通过三种不同的方式执行此操作。

  1. @csrf
  2. csrf_field()
  3. csrf_token()

@csrf:这是一个刀片模板指令,用于在 HTML 表单中生成隐藏的输入字段。

  • 句法:
    @csrf // Generate hidden input field ..... .....
  • 例子:
    
    
        
            Laravel | CSRF Protection
        
        
            
                

    CSRF Protected HTML Form

                
                    @csrf                                                                                   
            
        

csrf_field():该函数可用于生成 HTML 表单中的隐藏输入字段。

注意:这个函数应该写在双花括号内。

  • 句法:
  • 例子:
    
    
        
            Laravel | CSRF Protection
        
        
            
                

    CSRF Protected HTML Form

                                 {{ csrf_field() }}                                                                                            
        

csrf_token():这个函数只是给出一个随机字符串。此函数不会生成隐藏的输入字段。

注意: HTML 输入字段应显式编写。这个函数应该写在双花括号内。

  • 句法:
    ..... .....
  • 例子:
    
    
        
            Laravel | CSRF Protection
        
        
            
                

    CSRF Protected HTML Form

                
                                                                                                       
            
        

输出:对于上述三种生成 CSRF 令牌的方法中的任何一种,输出都是相同的。 CSRF 令牌字段应该在 Laravel 应用程序中使用三种方式中的任何一种在每个 HTML 表单的开头编写/生成。

检查元素输出:

参考: https://laravel.com/docs/6.x/csrf