我有一个ajax上传器,允许用户将图片上传到程序,之后会显示给用户。我想在允许文件留在服务器之前检查此文件是否有病毒。下面是将文件发送到病毒扫描程序的代码。我希望能够看到扫描结果是否会产生病毒,然后如果病毒确实存在病毒,则将其从服务器中删除。
try
{
Process myProcess = new Process();
myProcess.StartInfo.FileName = @"C:\Program Files\AVG\AVG8\avgscanx.exe";
//myProcess.StartInfo.FileName=@"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();
}
答案 0 :(得分:1)
这是一个罕见的巧合,用户上传了一个特殊的手工制作的jpg / png /利用读取组件/库中未知(在这种情况下无用的防病毒)漏洞的任何图像文件。
如果漏洞已知,并且您的AV知道漏洞利用签名(或在运行之前拦截漏洞利用程序)阻止它并保护您的系统(图书馆不是最新的),则更为罕见。
如果上述操作系统具有DEP和ASLR识别(完全强制执行)组件,则更为罕见。