【问题标题】:What are the security issues to consider if shelling out from ASP.Net web app?如果从 ASP.Net Web 应用程序脱壳,需要考虑哪些安全问题?
【发布时间】:2010-02-23 01:43:06
【问题描述】:

我有一个 ASP.Net Web 应用程序,它需要根据管理员用户的操作不时运行处理任务。我正在研究的其中一项任务需要运行命令行应用程序,以安全地传输文件。我别无选择,只能使用我提供的命令行应用程序。

相关的 ASP.Net 页面将调用我的 dll,如果 dll 确定需要执行命令行应用程序,它将执行此操作。

不过,我想知道有关设置它的潜在安全问题。这是愚蠢和/或危险的吗?任何人都可以发表评论或建议我如何安全地解决这个问题吗?

谢谢。

【问题讨论】:

    标签: asp.net security


    【解决方案1】:

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

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

    如果攻击者试图通过操纵命令行应用程序来侵占您的系统,他应该被操作系统安全性阻止。如果您的 Web 应用程序或助手应用程序需要如此多的权限才能运行,以至于应用程序帐户必须被授予足够的权限,以使使用该帐户在本地登录的人可以修改系统设置,那么您将处于非常危险的境地。直接说不吧!

    【讨论】:

    • 不,正在传输的文件来自一家金融公司并包含交易信息 - 用户将无权修改任何命令行参数,除了日期参数。助手应用程序所做的只是从另一个服务器 sFTP 一个文件,然后解密它。
    • 这听起来很安全。但这听起来也像是在处理敏感信息。所以我会偏执并完成我提到的所有应用程序帐户创建/配置步骤。
    • 谢谢!对我来说,这种事情看起来一定是我遗漏了某种安全问题。我很欣赏第二种意见。
    猜你喜欢
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多