设置表单令牌(1.3.1+)
setToken('令牌名称', '令牌生成规则')
从
1.3.1开始支持
从1.3.1开始,用ZBuilder生成的表单将默认带有表单令牌,能起到CSRF防御作用。
使用令牌验证
在你的验证规则中,添加token验证规则即可,例如,如果使用的是验证器的话,可以改为:
protected $rule = ['name' => 'require|max:25|token','email' => 'email',];
或者
protected $rule = ['name' => 'require|max:25','email' => 'email','__token__' => 'token',];
全局设置
如果所有表单都不需要开启表单令牌,可以在
\application\extra\zbuilder.php 修改form_token_name为false。
单独关闭表单令牌
如果仅需要在某个表单关闭表单令牌,可以在创建ZBuilder表单时,这样设置
->setToken(false)
修改表单令牌名称
如果你的令牌名称不是__token__,可以自己自定义,比如:
->setToken('__hash__')
那么验证器规则就需要修改为:
protected $rule = ['name' => 'require|max:25|token:__hash__','email' => 'email',];
或者
protected $rule = ['name' => 'require|max:25','email' => 'email','__hash__' => 'token:__hash__',];
自定义令牌生成规则
如果需要自定义令牌生成规则,则直接设置规则名称,如:
->setToken('', 'sha1')
或者同时自定义名称和生成规则
->setToken('__hash__', 'sha1')
