我想在面向互联网的应用程序中保护 ELMAH。该系统使用表单例份验证,但目前没有任何非用户帐户(例如管理员)。用户帐户以自动方式设置。
我真的不想将任何管理员帐户硬塞进系统(用户的当前数据库架构非常不适合在其中存储管理员用户),所以我正在考虑通过检查SSL 客户端证书。如果我在 IIS 中选择了所有正确的选项,我相信我可以确保只有我们内部 CA 颁发的证书(目前用于需要 SSL 证书的非生产站点)才能传递到 ASP.Net。
然后我可以使用 Valid ClientCertificate 的存在(检查 Request.ClientCertificate 的 IsPresent 和 IsValid 属性)来知道这是来自内部用户的连接,并将 Forms Authentication cookie 设置为“Diagnostic”或“Admin” (或任何其他特殊用户名),然后使用建议的任何常用方法通过表单例份验证保护 elmah.axd。
所以我的问题是 - 我是否使事情过于复杂、遗漏了一些明显的东西、打开了一个巨大的安全漏洞等?
最佳答案
为什么不在 Web.Config 中存储管理员用户帐户凭据并使用表单例份验证锁定 URL?
编辑
好吧,如果应用程序完全是内部的,为什么不使用 Active Directory 保护您站点的子目录(例如 myapplication.domain.com/exceptions/elmah.axd 或什至只是 myapplication.domain.com/elmah.axd)并通过 IIS 设置授权?
关于asp.net - 在没有管理员帐户的情况下保护 ELMAH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3583323/