我正在为一些小型企业开发一个ASP.NET网站。该站点需要一个受密码保护的区域,站点所有者将在该区域管理站点内容。对于世界其他地方,该网站是完全只读的。
我设计并实施了以下方案:
正确的密码在auth.aspx源中存储为字符串常量。
这个计划好吗?
P.S。我知道AD + Kerberos要好得多,但是在godaddy的共享主机上我甚至没有特权创建一个应用程序。
答案 0 :(得分:4)
我只是将用户身份验证硬编码到web.config中。这意味着您仍然可以使用Membership控件。可以看到一个非常好的例子here。不需要数据库,也不需要成员资格。如果您有一个用户(或很少用户),那么这是一个非常好的选择。
如果您担心web.config中的身份验证详细信息,那么您可以{web}配置encrypt specific sections。
这似乎是一个比你实施的更简单的解决方案。
答案 1 :(得分:2)
听起来不错。标准的HMAC东西。无论你的弱点如何:
根据您的要求,您可能没问题。我说我强烈建议使用表单身份验证,它可以克服这些问题以及更多......而且它很容易使用。
答案 2 :(得分:1)
嗯,为什么http://en.wikipedia.org/wiki/Basic_access_authentication与https(甚至没有)?
- 威胁的真实情况是什么?
您的方法似乎有点手工制作。通常的规则是尝试使用现有的安全系统,而不是发明自己的安全系统。发明一种非常安全的新认证机制是一个非常难的问题。
答案 3 :(得分:1)
许多聪明人(即创建WEP的软件工程师)在创建自己的安全认证机制时尝试失败并且失败了。搞砸自己的“自定义”安全认证的可能性是无穷无尽的(没有冒犯,但即使是安全专家也难以处理这个问题。)
我认为最好使用经过验证的工作,例如基于SSL证书的身份验证方法。
答案 4 :(得分:0)
TLS / SSL有什么问题?它会在这里提供许多好处,其中最少的是网站的一些线程 - >用户身份验证。
答案 5 :(得分:0)
正如已经提到的那样,为什么不直接使用带有SSL证书的表单身份验证 - 易于设置(特别是对于一个用户)并且您知道它已经过测试...您不知道自己在做什么可能错过了。