2011-12-26 4 views
2

これが正しいセクションにあるかどうかはわかりませんが、ファイルアップロードサイトを構築していて、アップロード時にウイルスなどのファイルをスキャンできるようにしたいと思います。これを行うことができる?ファイルにAVスキャンを追加する

私を始めるためのアイデアはありますか?

おかげ

+0

まず、始めにウイルススキャナが必要です。 – hakre

+0

ほとんどの場合、API経由でGUIレスのアクセスを可能にするウイルス対策ソリューションを検索する必要があります。特別な契約なしで一般的な購入のために存在する場合でも、彼らはかなり高価だと思います。 –

+0

[Command Line Virus Scanner](http://www.google.com/search?q=command+line+virus+scanner)を検索したほうが、起動方法がわかります。 –

答えて

0

それはあなたのサーバの設定に依存しますが、Linuxでは例えば、それはclamのようなものをインストールして、コマンドラインを介してアクセスするのは簡単です。あなたはそれを実行するためにPHPのexec()のようなものを使用することができます。

+0

私はこれを今すぐ試してみたいと思います。 、avira、kasperskyなど...それらはすべてコマンドラインスキャナを持っているのですか、あるいは私はそれらに直接連絡しなければなりませんか? –

2

あなたは、以下の使用してAVGのような何かを試みることができる:

のWindows:

<?php 
    exec("avgscanx.exe /SCAN=filename.ext/"); 
    $result = exec("echo %ERRORLEVEL%"); 
?> 

Linuxの場合:どちらのプラットフォーム

<?php 
    exec("avgscan filename.ext -a -H -c"); 
    $result = exec("echo $?"); 
?> 

は、あなたがいるかどうかを判断することができ、同じエラーコードを返しますスキャンが成功したかどうか。

参考文献:

+0

返信いただきありがとうございます。私はそれを試してみましたが、結果は出力されましたが、0しか得られませんでした。何も見つかりませんでしたが、私が知っていたファイルは確かにウイルスでした。アンチウイルス2012、それはウイルス、任意のアイデアを発見? –

+0

えええええええええええええええええええええええええええええええええええええええええええええええええええええええええええば、手動でコマンドラインからスキャンしてみてください。これは正確に何が起こっているかを調べるのに役立ちます。 WindowsまたはLinuxを使用していますか? –

+0

私はWindowsのコンピュータでapache xamppを使ってテストしています。ウィンドウは –

2

clamavのライブラリがphp-clamavと呼ばれるバインディングPHPを持っています。次に、あなたのPHPコード内からウイルスのファイルをスキャンすることができます

if ($_FILES['file']['size'] == 0 || !is_file($_FILES['file']['tmp_name'])) 
{ 
    throw new Exception('Please select a file for upload!'); 
} else { 
    cl_setlimits(5, 1000, 200, 0, 10485760); 
    if ($malware = cl_scanfile($_FILES['file']['tmp_name'])) 
     throw new Exception($malware.'(ClamAV version: '.clam_get_version(),')'); 
} 
... 

別の方法としては、Mod_Security web application firewallをインストールすることです。 すべてウイルスをアップロードファイルmodsec-clamscanを使用してスキャンするように構成できます。

0

また、VirusTotalsパブリックAPIを使用することもできます。あなたはそれについてもっと読むことができますhere。利用可能なPHPコードはhereです。

この方法で多くのスキャナーを使用でき、ローカルでAVを実行する必要はありません。一方、あなたはその結果を待つ必要があります。

+0

私は好ましくはローカルで実行したいと思いますが、とにかく複数のスキャナでこれを行うにはどうしますか? –

+0

それから、使用したいスキャナをあなたのサーバにインストールして、@ Andrew Odriのようなことをする必要があります。 –

関連する問題