这个项目能做什么
该软件包为处理 RFC 9116 中定义的 security.txt 格式提供了完整的 PHP 解决方案。它使开发人员能够以编程方式创建 security.txt 文件、解析现有文件,并对其内容和在主机上的放置进行全面验证。
主要功能包括:
- **生成**:构建 SecurityTxt 对象,添加联系人、确认、首选语言、过期日期和其他字段,然后输出格式正确的文本文件。
- **解析**:从字符串、获取的结果或远程 URL 加载 security.txt,提取所有字段并检测格式错误的行。
- **验证**:验证 security.txt 文件是否符合规范,检查必填字段、正确的 URL、HTTPS 使用、签名覆盖、重定向等。验证可以在本地内容上执行,也可以通过从主机获取来执行,并提供详细的错误和警告报告。
- **签名支持**:以编程方式创建 OpenPGP 明文签名(需要 gnupg 扩展)或使用预先签名的静态文件。该库验证签名,但不验证密钥信任,这留给研究人员处理。
- **CLI 工具**:命令行脚本(`checksecuritytxt.php`)允许快速验证任何主机,适用于 CI 管道或 GitHub Actions。
- **JSON 序列化**:验证或获取的结果可以编码为 JSON,用于缓存、无服务器处理或进程间通信,并具有版本控制的格式处理。
- **获取控制**:安全获取,具有严格限制(仅 HTTPS、IP 验证、重定向限制、大小限制、自定义 DNS 提供商和用户代理自定义)。
- **缓存**:与 Symfony 和 Nette 缓存的示例集成,无需在每次请求时重新计算即可签名和提供 security.txt 文件。
该库专为服务器端集成和命令行使用而设计,提供广泛的配置选项(严格模式、警告阈值、IPv6 处理等),同时保持干净、面向对象的 API。它支持 PHP 8.5 及更高版本,并可选扩展 curl 和 gnupg 以实现远程获取和签名验证。
评论
0 评分人数达到10人后显示
登录后参与讨论。