madeorsk / nocsrf
CSRF 防护库。
1.1.1
2020-09-21 11:39 UTC
Requires
- php: >= 7.0
- madeorsk/session: ^1.0
Requires (Dev)
- phpunit/phpunit: ^9
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)或代码文档中找到。