ClassCMS

CSRF

为了防止跨站请求伪造,后台附带了请求验证方法.

如某位后台用户在增加文章时,编辑器内插入了一张图片

<img src="?do=admin:logout">

当任意后台用户在后台编辑这篇文章时,将会自动退出,所以admin:logout 内需要csrf验证.如果方法内不存在恶意的行为,可以不使用csrf验证.

C('admin:csrfForm');//返回csrf值
C('admin:csrfForm',1);//返回<input type="hidden" name="csrf" value="csrf值">,可以将此信息存放在模板form标签内
C('admin:csrfForm',2);//返回csrf=csrf值,get类请求可以在表单网址中附带上此信息

当提交表单时,附带csrf值将传入给后台,对于post请求,必须附带当前csrf值,否则后台不会载入方法.

方法内主动验证

get类请求需要在方法内主动验证csrf值是否正确,

function xxx(){
    if(!C('this:csrfCheck')) {
        Return false;
    }
    //其它代码
}

在后台通过Layui组件layui.admin.req方法提交的请求会自带csrf值