我可以允许我的程序运行脚本吗?

时间:2011-07-05 16:14:33

标签: security privileges

有些用户建议我的(C#)程序在完成它的工作后应该能够运行脚本。这可以通过在我的配置对话框中输入的命令行来完成。

我不是安全专家,所以我不确定这在安全方面是否可以接受。由于应用程序以管理员权限运行(在Windows上),这不是一个巨大的安全风险吗?有人可能只是修改我的应用程序的配置文件,指向一个有潜在危险的脚本,不是吗?

另一方面,大量的应用程序允许这样做,同时请求管理员权限,所以我想它一定没问题,但我认为我最好在各处打开广泛的安全漏洞之前寻求建议=)

我可以允许我的应用程序以完全权限运行来启动用户指定的脚本吗?

2 个答案:

答案 0 :(得分:0)

您可以通过不同的方式限制对配置的访问 - 从混淆配置文件到使用NTFS权限来限制非管理员帐户的访问权限。

答案 1 :(得分:0)

C#当然允许您运行用户脚本。 System.Diagnostics.Process让这很容易。这里的安全问题是另一个问题。

在流程完成时运行脚本非常有用,可以决定您的目标受众对您的应用程序的看法。可以理解的是,您不希望通过像您一样的恶意黑客攻击您的产品。

这个问题的根源在于您的选项(我假设)基于文本并且可以轻松编辑。最好的办法是加密配置文件以防止外部更改。请注意,这并不妨碍人们使用您的应用程序更改您的选项以允许恶意脚本,但是对于某人来说,他们需要访问您的应用程序实例而不是简单的文件读/写访问权。

这确实会引起您应该注意的另一个方面的问题。不要在每次安装应用程序时使用相同的密钥。如果你这样做,那么Bob可能会让Alice通过复制Alice的配置运行恶意脚本,使用他的应用实例对其进行解密并进行更改,然后Bob可以用新的恶意配置替换Alice的配置。

Here is another SO question for how to encrypt strings in C#.

相关问题