ThinkPHP6开启CSRF表单验证

目录

使用原因

简单配置

两种提交数据的场景

表单提交

ajax异步提交


使用原因

项目使用非前后端分离的情境下,提交表单时,开启CSRF中间件能提高操作安全性。

简单配置

开启session中间件与csrftoken验证中间件

# 修改app/middleware.php,去掉SessionInit类注释并增加FormTokenCheck类

ps:本人直接使用全局中间件来演示。

两种提交数据的场景

表单提交

1.在form表单内设置隐藏域,生成CsrfToken

# 第一种形式:生成隐藏域表单

# 第二种形式:定义token名称并设置值

2.简单HTML实例代码 





    







ajax异步提交

1.生成meta标签

# 第一种形式:直接通过方法生成meta标签,放置在页面head块里

# 第二种形式:定义meta名称并设置值

2.调用ajax时,通过设置headers参数携带CsrfToken

let data = $('form').serializeArray();
$.ajax({
    type:'POST',
    url: '/admin/doLogin',
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    },
    data:data,
    success:function (res) {
      console.log(res)
    },
    error:function (err) {
      console.log(err)
    }
})

3.简单HTML实例代码





    







赋上TP6文档地址,更多细节可自行查阅:https://www.kancloud.cn/manual/thinkphp6_0/1037632

你可能感兴趣的:(PHP,后端,后端,php,thinkphp)