Help us understand the problem. What is going on with this article?

アップロードされたファイルにウイルスチェックを行う

More than 1 year has passed since last update.

LAMP環境において、ユーザがアップロードしたファイルにウイルスチェックを施す方法です。
PHP5.6 + Cent OS 6で検証しています。

サーバーにアンチウイルスソフトをインストールする

今回は、Linux用のオープンソースのアンチウイルスソフトである「Clam AntiVirus」を使用します。

参考 :
インストール方法はこちらの記事を参照しました
AWSのEC2インスタンスで稼働するAmazon Linuxでは、設定方法が異なります

[root@centos ~]# yum install clamd

# ウイルス定義ファイル更新設定ファイル編集
[root@centos ~]# vi /etc/freshclam.conf

# Send the RELOAD command to clamd.
# Default: no
#NotifyClamd /path/to/clamd.conf
NotifyClamd /etc/clamd.conf
↑ 追加(ウイルス定義ファイル更新をclamdに通知する)

# ウイルス定義ファイル最新化
[root@centos ~]# freshclam

アップロードされたファイルを検証する

$command = 'clamscan '.$filePath;

$out = '';
$int = -1;
exec($command, $out, $int);

if ($int == 0) {
    // ウイルスが検知されなかった場合

} else {
    // ウイルスが検知された場合、または実行に失敗した場合
    throw new \RuntimeException(implode(PHP_EOL, $out));
}

ウイルスのテストファイル

ウイルススキャンが有効に機能しているかどうかを検証するためには、EICARテストファイルと呼ばれる、実際には被害をもたらさないダミーのウイルスファイルを利用します。

  1. EICARテストファイルのダウンロードページにアクセスします。
  2. 任意のパターンのテストファイルをダウンロードし、実際に作成したプログラムにアップロードします。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away