arraypress/hmac-signer

通过生成HMAC签名URL,允许安全且可验证地访问资源,非常适合CloudFlare R2存储桶等环境。

dev-main 2024-05-18 20:27 UTC

This package is auto-updated.

Last update: 2024-09-18 21:08:47 UTC


README

HMACSigner库简化了生成HMAC签名URL的过程,以安全访问存储在CloudFlare R2存储桶和其他公共存储中的资源。它设计用于轻松集成到PHP项目中,通过带时间戳的可验证访问链接增强安全性。

最低要求

  • PHP: 7.4或更高

安装

HMAC Signer可以直接集成到您的PHP或WordPress项目中。以下是开始步骤:

通过Composer

composer require arraypress/hmac-signer
// Require the Composer autoloader to enable class autoloading.
require_once __DIR__ . '/vendor/autoload.php';

use function ArrayPress\Utils\HMACSigner\get_attachment_signed;
use function ArrayPress\Utils\HMACSigner\get_signed_resource;

使用示例

为WordPress附件生成签名URL

$signedUrl = get_attachment_signed( 123, 'https://previews.example.com', 'your-secret-key', 'audio-previews' );
echo "Signed URL: " . $signedUrl;

为通用资源生成签名URL

$signedUrl = get_signed_resource( 'my-song.mp3', 'https://previews.example.com', 'your-secret-key', 'audio-previews' );
echo "Signed URL: " . $signedUrl;

CloudFlare WAF配置

为了确保使用CloudFlare资源的安全性,配置WAF规则以验证URL的HMAC签名。

步骤1:访问CloudFlare控制台

登录您的CloudFlare账户并选择您想要配置WAF规则的域名。

步骤2:导航到防火墙部分

转到“防火墙”标签,然后选择“管理规则”。

步骤3:创建自定义防火墙规则

点击创建防火墙规则并定义规则条件和动作。

步骤4:定义规则表达式

(http.host eq "previews.example.com" and not is_timed_hmac_valid_v0("your-secret-key", http.request.uri, 600, http.request.timestamp.sec, 8))

将“your-secret-key”替换为您用于生成HMAC签名的密钥。

步骤5:设置动作

选择阻止以防止未授权访问。

步骤6:保存并部署规则

为您的规则选择合适的名称并点击部署。

测试您的配置

通过使用有效和无效的HMAC签名访问资源,确保您的规则有效。

贡献

我们非常欢迎对这个库的贡献。在GitHub上提出问题或提交拉取请求以修复错误或添加新功能。分享反馈和建议以进行改进。

许可证:GPLv2或更高版本

本程序是自由软件;您可以在自由软件基金会发布的GNU通用公共许可证的条款下重新分配和/或修改它;许可证的第2版,或者(根据您的选择)许可证的任何更高版本。