2011-08-04 136 views
0

我有一个ajax上传器允许用户上传图片到程序,然后显示回用户。我希望在允许文件留在服务器之前检查该文件是否有病毒。以下是将文件发送到病毒扫描程序的代码。我希望能够看到扫描结果是否会产生病毒,然后如果确实有病毒,请将其从服务器上删除。如何检查asp.net c#中的病毒扫描结果?

try 
{ 
    Process myProcess = new Process(); 
    myProcess.StartInfo.FileName = @"C:\Program Files\AVG\AVG8\avgscanx.exe"; 
    //[email protected]"C:\Program Files\ClamWin\bin\clamscan.exe"; 
    string myprocarg = @"""C:\Documents and Settings\Administrator.USER20501\My Documents\Luke's Projects\DADS\212\Images\FinalLogo" + file.ClientFileName + @""""; 
    myProcess.StartInfo.Arguments = myprocarg; 
    myProcess.OutputDataReceived += new DataReceivedEventHandler(myProcess_OutputDataReceived); 
    myProcess.ErrorDataReceived += new DataReceivedEventHandler(myProcess_ErrorDataReceived); 
    myProcess.StartInfo.RedirectStandardOutput = true; 
    myProcess.StartInfo.RedirectStandardError = true; 
    myProcess.StartInfo.UseShellExecute = false; 
    myProcess.StartInfo.CreateNoWindow = true; 
    myProcess.Start(); 
    myProcess.BeginOutputReadLine(); 
    myProcess.WaitForExit(); 
} 
catch (Exception) 
{ 

} 

void myProcess_OutputDataReceived(object sender, DataReceivedEventArgs e) 
{ 
    // this value will always be null....... 
    string s = e.Data.ToString(); 
} 

void myProcess_ErrorDataReceived(object sender, DataReceivedEventArgs e) 
{ 
    string s = e.Data.ToString(); 
} 

回答

1

这是一种罕见的巧合,用户上传一个特殊的手工制作的JPG/PNG /任何图像文件,攻击阅读组件/库未知(杀毒在这种情况下无用的)漏洞。

如果已知漏洞并且您的AV知道漏洞利用签名(或者在运行漏洞之前拦截漏洞)阻止漏洞,并且安全地保护您的系统(库不是最新版本),那么这种情况更为罕见。

如果上述操作系统具有DEP和ASLR感知(完全执行)组件,则更为罕见。