zakirullin / csrf-middleware
用于处理 CSRF-token 验证的 PSR-15 中间件
0.6.2
2019-04-25 09:16 UTC
Requires
- php: ^7.1
- middlewares/utils: ^2.1.1
- psr/http-message: ^1.0.1
- psr/http-server-middleware: ^1.0
- zendframework/zend-diactoros: ^1.7.0
Requires (Dev)
- phpunit/phpunit: ^7
- squizlabs/php_codesniffer: ^3.0
README
一个用于自动化 CSRF-token 验证过程的 PSR-15 中间件
要求
- PHP >= 7.1
- 一个 PSR-7 http 消息实现(Diactoros,Guzzle,Slim 等...)
- 一个 PSR-15 中间件分发器
安装
此包可以通过 Composer 以 zakirullin/csrf-middleware 的形式安装和自动加载。
composer require zakirullin/csrf-middleware
PHP
$getIdentity = function (\Psr\Http\Message\ServerRequestInterface $request) { $session = $request->getAttribute('session'); return $session->get('id'); }; $dispatcher = new Dispatcher([ ... new \Zakirullin\Middlewares\CSRF($getIdentity, 'secret'), ... ]);
HTML
<form method="POST" action="/dangerous/action"> ... <input type="hidden" name="csrf" value="<?= $request->getAttribute('csrf') ?>"> ... </form>
选项
__construct( callable $getIdentity, string $secret, string $attribute = self::ATTRIBUTE, int $ttl = self::TTL, string $algorithm = self::ALGORITHM )
$getIdentity(ServerRequestInterface $request)
一个回调函数,应返回一个包含某些用户唯一标识的字符串。例如 - 会话 ID
。
MIT 许可证 (MIT)。请参阅 LICENSE 获取更多信息。