【发布时间】:2010-08-27 10:35:01
【问题描述】:
我想在面向互联网的应用程序中保护 ELMAH。系统使用表单身份验证,但目前没有任何非用户帐户(例如管理员)。用户帐户以自动方式设置。
我真的不想将任何管理员帐户硬塞到系统中(用户的当前数据库架构非常不适合存储管理员用户),所以我正在考虑通过检查来破坏表单身份验证SSL 客户端证书。如果我在 IIS 中选择了所有正确的选项,我相信我可以确保只有我们内部 CA 颁发的证书(目前用于需要 SSL 证书的非生产站点)才能传递到 ASP.Net。
然后我可以使用 Valid ClientCertificate 的存在(检查 Request.ClientCertificate 的 IsPresent 和 IsValid 属性)来了解这是来自内部用户的连接,并将 Forms Authentication cookie 设置为“Diagnostic”或“Admin” (或任何其他特殊用户名),然后使用建议通过表单身份验证执行此操作的任何常用方法保护 elmah.axd。
所以我的问题是 - 我是否过于复杂了,遗漏了一些明显的东西,打开了一个巨大的安全漏洞,等等?
【问题讨论】: