arraypress / hmac-signer
通过生成HMAC签名URL,允许安全且可验证地访问资源,非常适合CloudFlare R2存储桶等环境。
dev-main
2024-05-18 20:27 UTC
Requires
- php: ^7.4 || ^8.0
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版,或者(根据您的选择)许可证的任何更高版本。