Перейти к основному содержимому
Версия: v0.20

Обзор 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Конструктор, жизненный цикл, параметры, фильтры, вывод и элементы управления устранением
Отчеты и находкиСхема отчета, статус охвата, находки, диагностика и обработка ошибок
Поиск сигнатурКонтракты поиска по хешам и доменам
Безопасность и состояниеВремя жизни состояния, разрушающие действия, сетевое поведение и рекомендации по развертыванию