このプロジェクトについて

このパッケージは、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 ファイルに署名して提供できます。 このライブラリは、サーバーサイド統合とコマンドライン使用の両方を想定して設計されており、クリーンなオブジェクト指向 API を維持しながら、豊富な構成オプション(厳格モード、警告しきい値、IPv6 の扱いなど)を提供します。PHP 8.5 以降をサポートし、リモート取得と署名検証を有効にするためのオプション拡張として curl と gnupg があります。