현재 위치: > 최신 기사 목록> 파일이 바이러스인지 여부를 감지하기 위해 바이러스 라이브러리와 결합 된 PHP의 MD5_File () 함수를 사용하는 방법?

파일이 바이러스인지 여부를 감지하기 위해 바이러스 라이브러리와 결합 된 PHP의 MD5_File () 함수를 사용하는 방법?

M66 2025-06-23

매일 웹 개발 또는 서버 작업 및 유지 보수에서 사용자가 업로드 한 파일에 바이러스 또는 악의적 인 콘텐츠가 없도록해야합니다. PHP 자체는 바이러스 바이러스 도구가 아니지만 MD5_File () 기능과 바이러스 서명 라이브러리를 결합하여 간단한 바이러스 탐지 메커니즘을 구현할 수 있습니다. 이 기사는 PHP의 MD5_File () 기능을 사용하여 파일이 알려진 바이러스인지 여부를 감지하기 위해 PHP의 MD5_File () 기능을 사용하는 방법을 소개합니다.

md5_file () 란 무엇입니까?

PHP의 MD5_FILE () 함수는 파일의 MD5 해시 값을 계산할 수 있습니다. 이 해시 값은 파일 컨텐츠의 디지털 지문입니다. 파일 내용이 변경되면 MD5 값도 변경됩니다. 바이러스 라이브러리에서 알려진 바이러스 파일의 MD5 값과 비교하면 파일이 알려진 바이러스인지 여부를 결정할 수 있습니다.

 $md5 = md5_file('upload/test.exe');
echo "파일 MD5 가치는입니다: " . $md5;

바이러스 라이브러리를 준비하십시오

바이러스 라이브러리는 알려진 바이러스 파일 MD5 값 목록입니다. 오픈 소스 커뮤니티 또는 M66.net/virusdb.txt 와 같은 보안 조직에서 얻을 수 있습니다. 물론 필요에 따라 자신의 바이러스 데이터베이스를 유지할 수도 있습니다.

바이러스 라이브러리의 형식은 일반적으로 라인 당 하나의 MD5 값입니다.

 5f4dcc3b5aa765d61d8327deb882cf99
e99a18c428cb38d5f260853678922e03
098f6bcd4621d373cade4e832627b4f6

바이러스 탐지 기능을 구현하십시오

다음은 업로드 된 파일이 바이러스인지 여부를 감지하기위한 완전한 PHP 예입니다.

 function isVirus($filePath, $virusDbPath = 'http://m66.net/virusdb.txt') {
    if (!file_exists($filePath)) {
        return false;
    }

    $fileMd5 = md5_file($filePath);

    // 바이러스 라이브러리의 내용을 얻으십시오
    $virusDb = file($virusDbPath, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

    if ($virusDb === false) {
        die("바이러스 라이브러리를로드 할 수 없습니다!");
    }

    // 차이 MD5 바이러스 데이터베이스에 존재하는지 여부
    return in_array($fileMd5, $virusDb);
}

// 사용 예제
$uploadFile = 'upload/test.exe';

if (isVirus($uploadFile)) {
    echo "경고하다:이 파일은 바이러스 일 수 있습니다!";
} else {
    echo "파일 보안。";
}

주목해야 할 것

  1. 바이러스 데이터베이스 업데이트 : 탐지 결과를 보장하기 위해 바이러스 데이터베이스를 정기적으로 업데이트해야합니다.

  2. 파일 크기 제한 : md5_file ()는 전체 파일을 읽고 큰 파일을 처리하면 더 많은 메모리를 소비 할 수 있습니다.

  3. 알려진 바이러스에만 적용 가능 :이 방법은 알려지지 않은 바이러스 또는 변이체를 감지 할 수 없습니다. 전문 바이러스 백신 소프트웨어 또는 API와 함께 사용하는 것이 좋습니다.

  4. 원격 판독 값 : 바이러스 라이브러리가 원격 서버 (예 : M66.net )에서 호스팅되는 경우 서버가 안정적이고 오류가 잘 처리되는지 확인하십시오.

요약

바이러스 라이브러리와 결합 된 PHP의 MD5_File () 함수를 통해 기본 파일 바이러스 감지 기능을 빠르게 구현할 수 있습니다. 이 방법은 전문 바이러스 백신 소프트웨어를 대체 할 수는 없지만 일부 예비 심사 및 파일 업로드에 실질적인 가치가 있습니다. 보안 요구 사항이 높은 시나리오에서는보다 전문적인 보안 검사 서비스에 액세스하는 것이 좋습니다.