我不是一名 Web 应用程序开发人员,但我是工作中唯一一个反对向(匿名)INETUSER 帐户授予完全权限以在 IIS 中运行 ASP.NET Web 应用程序的人。对于从 SQL 数据库读取(数据库连接为只读)的 Web 应用程序,这些权限包括读取、写入、执行、特殊权限等。我认为这可能不是确保服务器安全的最明智选择。
因为我说:“嘿,这可能是一个糟糕的想法”,所以我被要求进行风险评估。就像我说的,我基本上对 ASP.NET 或一般的 Web 应用程序一无所知,但在不了解设置细节的情况下,你们能告诉我我应该在这里关注哪些问题吗?
我有点害怕授予匿名互联网用户帐户对 wwwroot\ 目录的完全权限。
感谢您的帮助;我只是在寻找那些比我受过更多教育的人更容易发现的重大问题。
有任何想法吗?
答案1
假设您授予 INETUSER 帐户写入权限,因为您有某种机制可以写入/上传到 wwwroot。我看到的威胁是用户可能会将任意代码(新的 aspx、.dll)上传到服务器,这将授予他们做任何事情的能力。
答案2
如果您必须向 IIS 用户授予写入权限(例如,对于“上传”目录),请确保它是 Web 服务器根目录之外的目录。这将有助于降低风险,因为它确保上传的任何内容都无法随后由 IIS 提供。
即如果您必须有一个上传目录,请将其放在这里:
c:\inetpub\uploads
不在这里
c:\inetpub\wwwroot
否则,正如 Foson 所说。
您可能还考虑不授予执行权限,而只授予写入/修改权限。
答案3
文章通过文件系统 ACL 保护 IIS 中的内容可能对你感兴趣。你应该突出Avoid full control, and use more granular read/write permissions.