pkj / minibase-plugin-csrfprotection
插件,为 Minibase 框架应用默认启用 CSRF 保护。
dev-master
2013-04-26 01:28 UTC
Requires
- php: >=5.4.0
- minibase/minibase: dev-master
This package is auto-updated.
Last update: 2024-08-29 04:04:07 UTC
README
CSRF 保护插件
为 Minibase 应用程序的 CSRF 保护插件。
处理除 GET 请求外所有路由的恶意 CSRF 攻击。
安装
{ "require":{ "pkj/minibase-plugin-csrfprotection": "dev-master" } }
用法
将插件添加到您的应用程序中。
$mb->initPlugins(array('Pkj\Minibase\Plugin\Csrf\CsrfPlugin' => null));
在执行 POST 请求的表单中回显 $csrfTokenInput
。注意,$csrfToken
也可用,它只包含令牌。
<form> <?php echo $csrfTokenInput ?> </form>
现在您已经对 CSRF 保护安全。
配置数组
- store:
cookie
或session
。注意如果使用 SESSION,则必须启动 SESSION。我推荐使用cookie
。 - token_name: 令牌的名称。默认为 "csrfToken"。
事件
您可以通过添加事件处理程序来自定义无效令牌的错误异常。
$mb->events->on("csrf:invalid", function ($request) { return function () { return $this->respond("html")->view("csrfinvalid.html.php"); }; });
注解
首先,使用类 . use Pkj\Minibase\Plugin\Csrf\Annotation\IgnoreCsrfProtection
。
@IgnoreCsrfProtection
可以应用于控制器或控制器方法。对于 RESTful API(JSON API)非常有用。在这些情况下,我们不需要检查 CSRF 保护。