我想在面向互联网的应用程序中保护ELMAH。系统使用表单身份验证,但目前没有任何非用户帐户(例如管理员)。用户帐户以自动方式设置。
我真的不想把任何管理员账号塞进系统(用户的当前数据库架构对于存储管理员用户来说是非常不合适的),所以我想通过检查来破坏Forms身份验证SSL客户端证书。如果我在IIS中选择所有正确的选项,我相信我可以确保只有我们内部CA颁发的证书(目前用于需要SSL证书的非生产站点)才会传递给ASP.Net。
然后我可以使用Valid ClientCertificate(检查Request.ClientCertificate的IsPresent和IsValid属性)的存在来知道这是来自内部用户的连接,并将Forms Authentication cookie设置为“Diagnostic”或“Admin” (或任何其他特殊用户名),然后使用通过表单身份验证建议的任何常用方法来保护elmah.axd。
所以我的问题是 - 我是否过于复杂,缺少明显的东西,打开了一个巨大的安全漏洞等?
答案 0 :(得分:1)
为什么不在Web.Config中存储管理员用户帐户凭据并使用Forms身份验证锁定URL?
好的,如果应用程序完全是内部的,为什么不使用Active Directory保护站点的子目录(例如myapplication.domain.com/exceptions/elmah.axd,甚至只是myapplication.domain.com/elmah.axd)并通过IIS设置授权?