pkj / minibase-plugin-csrfprotection

插件,为 Minibase 框架应用默认启用 CSRF 保护。

dev-master 2013-04-26 01:28 UTC

This package is auto-updated.

Last update: 2024-08-29 04:04:07 UTC


README

Build Status

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: cookiesession。注意如果使用 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 保护。