2010-02-22 61 views
0

我有一个ASP.Net网络应用程序,需要根据管理员用户的操作不时运行处理任务。我正在研究的其中一项任务将需要进行脱壳以运行命令行应用程序,以安全地传输文件。我别无选择,只能使用我提供的命令行应用程序。如果从ASP.Net web应用程序中退出,需要考虑哪些安全问题?

有问题的ASP.Net页面会调用我的dll,如果dll确定需要执行命令行应用程序,它将这样做。不过,我想知道围绕这个设置的潜在安全问题。这是愚蠢的和/或危险的?任何人都可以评论,或者建议我如何安全地解决这个问题?

谢谢。

回答

1

很大程度上取决于命令行应用程序的功能和功能。最大的担忧是允许用户输入来控制该应用的功能。正在传输的文件是否由用户上传?如果是这样,你可能已经打开了自己的特洛伊木马。

只要安全地解决这个问题...
只为您的应用程序创建一个用户帐户,然后创建一个新的IIS应用程序池并将身份设置为该帐户。配置您的Web应用程序以使用此应用程序池。现在只需将该帐户的权限授予您的Web应用程序和命令行助手应用程序所需的资源。当Web应用程序启动此命令行助手时,它将在与应用程序池相同的安全上下文下运行命令行进程。

如果攻击者试图通过操纵命令行应用程序来攻击您的系统,那么应该通过操作系统安全来挫败他。如果您的Web应用程序或助手应用程序需要运行这么多的权限,那么必须授予应用程序帐户足够的权限,以便使用该帐户在本地登录的人员可以修改系统设置,那么您处于非常危险的情况。拒绝吧!。

+0

不,正在传输的文件是从金融公司进来的,包含交易信息 - 用户将无权修改任何命令行参数,除了日期参数。所有的帮手应用程序都会从​​另一台服务器上sFTP一个文件,并对其进行解密。 – 2010-02-22 18:08:42

+0

这听起来很安全。但这听起来像是你正在处理敏感信息。所以我会偏执,并通过我提到的所有应用程序帐户创建/配置步骤。 – 2010-02-22 19:53:35

+0

谢谢!对我而言,这是一种看起来像我一定会遇到某种安全问题的事情。我赞赏第二种意见。 – 2010-02-22 20:42:12

相关问题