madeorsk/nocsrf

1.1.1 2020-09-21 11:39 UTC

This package is auto-updated.

Last update: 2024-09-21 21:19:39 UTC


README

PHP 基于OWASP建议的简单易用的CSRF防护库。

安装

使用composer

composer require madeorsk/nocsrf

入门

简单示例代码

use NoCSRF\NoCSRF;

// Creating a new NoCSRF instance, which manages anti-CSRF tokens.
$nocsrf = new NoCSRF();

// Get an anti-CSRF token (to add in a hidden input field or a request header).
$token = $nocsrf->getToken();

// Verify anti-CSRF token.
if ($nocsrf->verify($token))
	echo "Anti-CSRF token is VALID!";
else
	echo "Anti-CSRF token is INVALID.";

自定义模块

NoCSRF由三个主要组件组成

  • KeyGenerator:生成密钥,默认实现为OpenSSL随机密钥生成器。
  • KeyStorage:存储用于令牌生成/验证的密钥。密钥存储需要以这种方式保存密钥,使其对特定会话可用,但不能被客户端检索。
  • TokenManager:包含令牌生成/验证逻辑。提供密钥。

您可以创建这三个组件的自定义类。您可以选择在NoCSRF初始化时使用哪个模块。

$nocsrf = new NoCSRF([
	"keyGenerator" => new OpensslKeyGenerator(16),
	"keyStorage" => new SessionKeyStorage(),
	"tokenManager" => new HMACTokenManager(),
]);

此示例中使用的组件是默认值。

完整API文档

完整API文档可在GitHub wiki(WIP)或代码文档中找到。