2011-08-04 11 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対応の(完全に強制された)コンポーネントがある場合、さらに稀です。

関連する問題