如何在JSP中开发高度安全的基于Web的用户登录系统?

时间:2013-11-25 13:41:43

标签: oracle security jsp

我正在使用JSP和ORACLE开发基于Web的应用程序。该应用程序将允许全球约20个特定用户使用www,http。他们将使用我预先定义的用户名和密码登录。我应该采取什么策略来禁止任何未经授权的用户进入系统。如果这里存在这样的线程,那么请建议最好的。欢迎任何形式的帮助

2 个答案:

答案 0 :(得分:1)

您可以采取以下几种措施:

  • 复杂密码
  • 使用SHA
  • 之类的数据库中的哈希密码
  • 使用HTTPS协议
  • 永远不会向用户发送明确的密码
  • 可能在X登录尝试失败时阻止帐户
  • 查询数据库时使用预准备语句
  • 尽可能标准化错误消息(如果密码错误或用户名不存在,请不要通知,只提供一般错误)
  • ...

这实际上是一个非常广泛的问题,根据需要,安全性会变得非常高。

答案 1 :(得分:0)

这取决于您的数据的重要程度以及您尝试保护它的对象(例如,如果它是银行,您可能不允许通过密码重置电子邮件重置密码,但对于大多数其他应用程序,这可能没问题) 。但是,我在下面提到了一些基本的指示。

  • 对每个网址使用HTTPS。
  • 实施HSTS
  • 将所有Cookie标记为secureHTTP only
  • 强制使用强密码。
  • 记录每次登录尝试(至少日期/时间,用户名,远程IP以及是否成功)
  • 使用bcryptsomething arguably more secure
  • 存储密码
  • 如果在最后Y分钟内有来自同一IP的X登录尝试失败,请为来自此IP的请求添加人为延迟以阻止暴力攻击。
  • 如果在最后Y分钟内对同一用户名进行了X次失败登录尝试,请为此用户名添加人为延迟,以阻止暴力攻击。
  • 因为人为的延迟使他们跨线程停止并发请求。
  • 即使用户名不存在也可以延迟以防范username enumeration
  • 防范其他形式的username enumeration
  • 实施一项政策,密码永远不会在任何地方输出。