4

OS コマンド インジェクションはwinform アプリケーションで機能しますか?

それは重大なセキュリティ上の脅威ですか?

はいの場合、アプリケーションを保護するための最善の解決策は何ですか?

上記のリンクは大歓迎です。

ここにコード例があります

public static void RunNewInstance(参照文字列 pstrUserRole)
        {
            アセンブリ asm = Assembly.GetExecutingAssembly();
            文字列 lstrExeName = asm.ManifestModule.Name;
            プロセス proc = new Process();
            文字列 lstrCurrentDirectory = Environment.CurrentDirectory;
            proc.StartInfo.FileName = lstrCurrentDirectory + "\\" + strExeName;

            proc.StartInfo.Arguments = pstrUserRole;
            proc.Start();
        }
4

1 に答える 1

2

winformsアプリで、ユーザー入力が他の方法では実行できない任意のシステムコマンドを実行できる場合は、脆弱です。解決策はそれを許可しないことです。シェルコマンドを実行する代わりに、ユーザーに許可されていることを明示してください。ユーザーに任意のことをさせないでください。

これは非常に一般的な答えですが、アプリについて具体的な情報を提供していないため、自分にとって最善の決定が何であるかを知る方法はありません。

ただし、これはWinFormsアプリであるため、このアプリはインタラクティブユーザーと同じ権限を持っている可能性が高いと思います。この場合、コマンドプロンプトを開くだけでは、アプリで実行できないことは何もできません。

たぶん、あなたはあなたのアプリについて、そしてなぜあなたがこの特定の脆弱性を恐れているのかについてより多くの詳細を与えるべきです。

于 2013-02-19T12:40:39.567 に答える