laswitchtech/php-csrf

PHP 应用程序的 CSRF 保护库

v1.1.5 2024-04-03 18:18 UTC

README

GitHub repo logo

phpCSRF - [已弃用] - 使用 coreCSRF 代替

License GitHub repo size GitHub top language Version

描述

该类是 PHP 的 CSRF 令牌生成和验证系统的实现。CSRF(跨站请求伪造)是一种攻击,攻击者通过代表用户发送伪造请求,欺骗用户在网站上执行不希望的操作。

特性

  • 使用加密安全的随机数生成器生成 CSRF 令牌。
  • 使用默认字段名 'csrf' 用于检索和验证令牌,但允许通过构造函数设置自定义字段名。
  • 支持通过 generate 方法设置令牌的长度,默认长度为 32 字节。
  • 使用 phpLogger 类将错误消息记录到文件中,并将 IP 地址信息包含在日志条目中。
  • 配置cookie安全设置,以帮助防止跨站脚本(XSS)和跨站请求伪造(CSRF)攻击。

为什么你可能需要它?

此类为 PHP 中 CSRF 令牌生成器和验证器提供了一个简单的实现。它旨在易于使用,同时仍提供足够的预防措施来防止 CSRF 攻击。

CSRF 攻击发生在恶意用户欺骗已认证用户在 Web 应用程序上执行未意图的操作时。为了防止这些攻击,将生成 CSRF 令牌并将其添加到要提交的表单中。当表单提交时,验证令牌以确保它与预期值匹配。如果令牌无效,则拒绝请求。

我能使用它吗?

当然可以!

许可证

本软件根据 GNU 通用公共许可证 v3.0 许可证分发。请阅读 LICENSE 了解有关软件可用性和分发的信息。

要求

  • PHP >= 7.0.0

安全

请负责任地披露发现的任何漏洞 - 向维护者私下报告安全问题。

安装

使用 Composer

composer require laswitchtech/php-csrf

如何使用它?

示例

初始化 CSRF

//Import CSRF class into the global namespace
//These must be at the top of your script, not inside a function
use LaswitchTech\phpCSRF\phpCSRF;

//Load Composer's autoloader
require 'vendor/autoload.php';

//Initiate CSRF
$phpCSRF = new phpCSRF();

验证令牌

//Import CSRF class into the global namespace
//These must be at the top of your script, not inside a function
use LaswitchTech\phpCSRF\phpCSRF;

//Load Composer's autoloader
require 'vendor/autoload.php';

//Initiate CSRF
$phpCSRF = new phpCSRF();

//Validation
$phpCSRF->validate(); // Returns Boolean

检索 CSRF 令牌

//Import CSRF class into the global namespace
//These must be at the top of your script, not inside a function
use LaswitchTech\phpCSRF\phpCSRF;

//Load Composer's autoloader
require 'vendor/autoload.php';

//Initiate CSRF
$phpCSRF = new phpCSRF();

//Token
$phpCSRF->token(); // Returns Token