Slim 3 使用一个可选的独立的PHP 组件 slimphp/Slim-Csrf 保护你的应用,防止CSRF(跨站请求伪造) ,这个组件会为任何的请求生成一个唯一的token随着应用客户端的HTML表单提交过来进行POST请求验证.
安装
进入命令行,在你的项目的根目录底下执行下面的代码:
composer require slim/csrf
用法
slimphp/Slim-Csrf
组件包含应用中间件,添加到你的应用中即可:
// Add middleware to the application
$app = new \Slim\App;
$app->add(new \Slim\Csrf\Guard);
// Create your application routes...
// Run application
$app->run();
获取CSRF token的名称和值
CSRF token
的名称和值是一个PSR 7响应对象的的属性. CSRF token
的名称和值在任何一个请求中是唯一的.你可以获得当前请求的CSRF token
的名称和值:
$app->get('/foo', function ($req, $res, $args) {
// Fetch CSRF token name and value
$name = $req->getAttribute('csrf_name');
$value = $req->getAttribute('csrf_value');
// TODO: Render template with HTML form and CSRF token hidden field
});
你可以把CSRF token的名称和值放在模板里面,这样可以通过HTML表单提交,通常是放在一个表单的隐藏域里面.
文档翻译的并不是很专业,仅供个人学习作用,建议看官方文档。
Slim 文档系列完结。