Security ASP经典用户登录系统密码安全注意事项?
全部, 我目前正在用ASP classic设计一个用户帐户系统……不要评判,这是我所熟悉的;)。我已经构建了几个组件,包括UI、数据库表、CRUD数据库ASP页面和通用邮件程序。我很想知道为ASP实现安全登录系统的一些最佳实践。搜索web会产生大量我以前使用过的“简单ASP安全”解决方案,但这是我第一次构建一个健壮且真正安全的解决方案。最终的实现将用于工作申请系统,因此,由于内容的原因,它肯定需要安全 到目前为止,我已经:Security ASP经典用户登录系统密码安全注意事项?,security,login,asp-classic,passwords,Security,Login,Asp Classic,Passwords,全部, 我目前正在用ASP classic设计一个用户帐户系统……不要评判,这是我所熟悉的;)。我已经构建了几个组件,包括UI、数据库表、CRUD数据库ASP页面和通用邮件程序。我很想知道为ASP实现安全登录系统的一些最佳实践。搜索web会产生大量我以前使用过的“简单ASP安全”解决方案,但这是我第一次构建一个健壮且真正安全的解决方案。最终的实现将用于工作申请系统,因此,由于内容的原因,它肯定需要安全 到目前为止,我已经: 密码恢复/重置仅适用于文件中的电子邮件帐户 散列数据库中存储的密码 不
- 密码恢复/重置仅适用于文件中的电子邮件帐户
- 散列数据库中存储的密码
- 不要在会话cookie上设置过期时间,这样它们只会存储在内存中(今天在某个地方阅读)
- 获取服务器的证书并使用https
哈希应该始终在服务器端完成。如果在客户端对密码进行散列并通过http以明文形式发送,则MITM可能无法从散列中反转密码,但他可以始终使用相同的散列登录到用户的帐户。在这种情况下,散列实际上变成了用户的纯文本密码。请务必将HTTP POST与SSL一起使用 保护asp代码不受sql注入的影响 存储带有加密令牌的本地cookie,以便用户在关闭会话/浏览器后保持登录,或者使用asp会话进行单一登录,该登录可能在上次请求后20分钟内或关闭浏览器时过期 保护您的cookie以防cookie/会话劫持。()
此外,您可以通过请求/存储/验证服务器变量(如用户代理的一部分)来使用用户的指纹。我只想添加一个指向此SO帖子的链接,以详细说明为什么不通过querystring传递密码。好建议,好答案+这是一个很好的建议。谢谢我对总是发布登录信息(没有AJAX)这一部分特别感兴趣。我不知道,我相信这会帮我省去很多麻烦!关于做盐,你能推荐什么好的ASP功能?我还将密码发送回一个管理员可见的用户表,所以我想只要我使用https,在发送回密码之前,我就可以在服务器端使用https了?我目前正在使用我正在使用的“不安全”版本的AJAX来完成这项工作。因为它只是一个div中的纯文本,我想这仍然可以吗?很抱歉问了这么多问题!散列是一个单向的过程,所以没有什么比脱盐更好的了。salt散列的工作方式是,获取密码,向其中添加随机字符串(salt),然后对其进行散列(查找ASP的SHA1实现)。注意,您将在数据库中存储哈希和salt。接下来,当您必须验证用户提供的密码时,您对用户密码执行相同的操作,即从数据库中获取salt,将其附加到用户提供的密码并对其进行散列。如果生成的哈希值与数据库中的哈希值匹配,则密码是正确的,您允许用户进入。