2011-12-26 80 views
2

我不確定這是否在正確的部分,但我正在建立一個文件上傳網站,並希望能夠掃描文件上傳病毒等。我將如何能夠做到這一點?添加防病毒掃描到文件上傳網站

任何想法讓我開始?

感謝

+0

您首先需要病毒掃描程序才能開始使用。 – hakre 2011-12-26 18:02:56

+0

您很可能必須搜索能夠通過API訪問GUI的防病毒解決方案。我想他們是相當昂貴的,如果甚至存在一般購買沒有任何特殊的合同。 – 2011-12-26 18:03:09

+0

也許正在搜索[命令行病毒掃描程序](http://www.google.com/search?q=command+line+virus+scanner)也可以幫助您瞭解如何啓動。 – 2011-12-26 18:04:41

回答

0

這取決於你的服務器配置,但例如在Linux上,可以很容易地安裝像clam並通過命令行訪問。你可以使用像php的exec()這樣的東西來運行它。

+0

好的,輝煌的我現在就試試這個,我將如何實現多個掃描器,例如來自Avast ,avira,卡巴斯基等...他們都有命令行掃描儀,還是我必須直接與他們聯繫? – 2011-12-29 21:56:23

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年,它發現了病毒,有什麼想法? – 2011-12-29 21:54:38

+0

嗯,嘗試使用這裏的開關手動從命令行掃描:http://www.avg.com/ww-zh/faq.num-4443。這將有助於確定究竟發生了什麼。你使用的是Windows還是Linux? – 2011-12-29 21:57:35

+0

我通過apache xampp在我的windows電腦上測試它,我認爲它是windows – 2011-12-29 22:03:35

2

ClamAV的圖書館有一個PHP綁定稱爲php-clamav。然後你可以從你的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

好的,謝謝但我最好想在本地運行它,有無論如何用多個掃描儀來做到這一點? – 2011-12-29 21:56:49

+0

然後,您將不得不安裝您想要在服務器上使用的掃描儀,然後執行類似@Andrew Odri建議的操作。 – 2011-12-29 22:14:08