Как вы можете проверить результаты проверки на вирусы в asp.net c #? - PullRequest
0 голосов
/ 04 августа 2011

У меня есть загрузчик 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();
}

1 Ответ

1 голос
/ 04 августа 2011

Это редкое совпадение, когда пользователь загружает специальный ручной файл jpg / png / любой другой файл изображения, использующий неизвестную (в данном случае антивирус бесполезную) уязвимость компонентов / библиотек для чтения.если уязвимость известна, и ваш AV знает сигнатуру эксплойта (или перехватывает эксплойт перед его запуском), блокирует ее и защищает вашу систему (с устаревшими библиотеками).

Еще реже, есливышеупомянутая операционная система имеет компоненты, полностью поддерживающие DEP и ASLR.

...