Обзор PHP SDK
Используйте PHP SDK, когда приложению необходимо запустить сканирование, обработать его структурированный отчет или выполнить поиск по встроенным индексам сигнатур. Поддерживаемый API включает AMWScan\Scanner и методы поиска только для чтения AMWScan\Signatures.
Установка и загрузка
Установите пакет через Composer и загрузите автозагрузчик Composer перед использованием SDK:
composer require marcocesarato/amwscan
require __DIR__ . '/vendor/autoload.php';
use AMWScan\Scanner;
Пакету требуется PHP 7.4 или новее с расширениями fileinfo, json, mbstring и zlib. Поддерживаемые среды указаны в разделе Требования.
Выберите точку входа
| Потребность | 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 и методы поиска, описанные в этом разделе, образуют поддерживаемую поверхность интеграции. Классы из Archive, Checkpoint, Console, Findings, Integrity, Modules, Remote и Reputation обслуживают внутренние механизмы сканера. Не связывайте с ними приложение, как и с публичными статическими свойствами, такими как Scanner::$settings и Signatures::$raw.
Сканер хранит конфигурацию и отчеты в статическом состоянии. Один процесс PHP должен выполнять только одно сканирование одновременно. Используйте отдельный процесс для параллельных заданий, сканирований в очереди или изоляции между арендаторами. Перед запуском SDK в воркере или долгоживущем веб-процессе прочитайте Безопасность и состояние.
Карта справочника
| Справочник | Содержимое |
|---|---|
| Сканирование с Scanner | Конструктор, жизненный цикл, параметры, фильтры, вывод и элементы управления устранением |
| Отчеты и находки | Схема отчета, статус охвата, находки, диагностика и обработка ошибок |
| Поиск сигнатур | Контракты поиска по хешам и доменам |
| Безопасность и состояние | Время жизни состояния, разрушающие действия, сетевое поведение и рекомендации по развертыванию |