メインコンテンツまでスキップ
バージョン: v0.21

PHP SDK の概要

アプリケーションからスキャンの開始、構造化レポートの利用、組み込みシグネチャインデックスの照会が必要な場合は、PHP SDK を使用します。サポート対象の API は AMWScan\Scanner と、読み取り専用の AMWScan\Signatures ルックアップメソッドです。

インストールと読み込み

Composer でパッケージをインストールし、SDK を使用する前に Composer のオートローダーを読み込みます。

composer require marcocesarato/amwscan
require __DIR__ . '/vendor/autoload.php';

use AMWScan\Scanner;

パッケージには、fileinfojsonmbstringzlib 拡張機能を有効にした PHP 7.4 以降が必要です。サポート対象の環境については 要件 を参照してください。

エントリポイントを選ぶ

用途API結果
ファイルまたはプロジェクトをスキャンするScanner::run()stdClass のスキャンレポート、または捕捉したスキャンエラー時は false
完了したスキャン結果を読み取るScanner::getReport()現在の stdClass スキャンレポート
完全一致する SHA-256 マルウェアハッシュを確認するSignatures::findKnownMalwareHash()一致レコードまたは null
従来の正規化済みファイルハッシュを確認するSignatures::matchesLegacyCoreFile()bool
組み込みの不審なドメイン指標を一覧するSignatures::getDomainIndicators()指標レコードの配列

スキャン実行を統合する前に Scanner でスキャンする を確認してください。結果を永続化したりアラートを出したりする前に レポートと検出結果 を確認してください。

最小構成の無人スキャン

use AMWScan\Scanner;

$scanner = new Scanner();
$report = $scanner
->enableLiteMode()
->setSilentMode()
->setAutoSkip()
->run([__DIR__ . '/project']);

if ($report === false) {
throw new RuntimeException($scanner->getLastError() ?: 'Scan failed.');
}

printf("Scanned: %d; findings: %d\n", $report->scanned, $report->detected);

setSilentMode() は非対話モードを設定し、別のプロンプトを設定していない場合はスキップをデフォルトのアクションとして選択します。これだけでスキャンが読み取り専用になるわけではありません。代表的なレポートを確認するまで、自動修復は無効のままにしてください。

API の安定性

Scanner とこのセクションで説明するルックアップメソッドは、サポート対象の統合インターフェイスです。ArchiveCheckpointConsoleFindingsIntegrityModulesRemoteReputation 以下のクラスはスキャナー内部を支援します。アプリケーションをこれらや、Scanner::$settingsSignatures::$raw などの public static プロパティに依存させないでください。

スキャナーは設定とレポートを static 状態で保持します。1 つの PHP プロセスでは、同時に実行するスキャンは 1 件にしてください。同時実行ジョブ、キューに入れたスキャン、テナント間の分離には別プロセスを使用します。ワーカーまたは長時間稼働する Web プロセスで SDK を実行する前に、安全性と状態 を確認してください。

リファレンスマップ

リファレンス内容
Scanner でスキャンするコンストラクター、ライフサイクル、オプション、フィルター、出力、修復コントロール
レポートと検出結果レポートスキーマ、カバレッジ状態、検出結果、診断、失敗処理
シグネチャの照会ハッシュおよびドメイン照会の契約
安全性と状態状態の存続期間、破壊的なアクション、ネットワーク動作、デプロイメントガイダンス