0

ユーザーが後でユーザーに表示されるプログラムに画像をアップロードできるようにする 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();
}
4

1 に答える 1

1

ユーザーが、読み取りコンポーネント/ライブラリの未知の脆弱性 (この場合、ウイルス対策は役に立たない) を悪用して、特別な手作りの jpg/png/whatever 画像ファイルをアップロードするのは、まれな偶然です。

脆弱性が既知であり、AV がエクスプロイト シグネチャを認識している (またはエクスプロイトを実行する前にインターセプトしている) 場合、それをブロックしてシステムを保護している (ライブラリが最新ではない) 場合は、さらにまれです。

上記のオペレーティング システムに DEP および ASLR 対応の (完全に適用された) コンポーネントがある場合は、さらにまれです。

于 2011-08-04T13:58:49.117 に答える