OS命令注入

时间:2013-02-19 12:22:30

标签: c# windows winforms

OS Command Injection是否适用于winform应用程序?

这是主要的安全威胁吗?

如果是,那么确保应用程序对抗它的最佳可行解决方案是什么?

上述任何链接都将受到赞赏。

以下是示例代码

public static void RunNewInstance(ref string pstrUserRole)
        {
            Assembly asm = Assembly.GetExecutingAssembly();
            string lstrExeName = asm.ManifestModule.Name;
            Process proc = new Process();
            string lstrCurrentDirectory = Environment.CurrentDirectory;
            proc.StartInfo.FileName = lstrCurrentDirectory + "\\" + strExeName;

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

1 个答案:

答案 0 :(得分:2)

如果你的winforms应用程序允许用户输入执行他们原本无法执行的任意系统命令,那么它是易受攻击的。解决方案是不允许它。而不是运行shell命令,而是明确允许用户执行的操作。不要让用户做任意的事情。

这是一个超级广义的答案,但您没有详细说明您的应用,因此无法知道最适合您的决定。

我的猜测是,因为这是一个winforms应用程序,该应用程序可能具有与交互式用户相同的权限。在这种情况下,只需打开命令提示符,您的应用程序就无法执行任何操作。

也许您应该提供有关您的应用的更多详细信息,以及为什么您害怕这个特定的漏洞。