创建包含用户特定数据的WebSocket会话的最安全方法

时间:2019-06-28 17:04:29

标签: java security session websocket java-ee-7

简介

我们的Web应用程序的用户必须登录才能使用该应用程序。通信使用(以及XMLHttpRequest)WebSocket API。

问题

  1. 是否将用户名和密码存储在<input type="hidden">的{​​{1}}中,然后将其数据值发送到足够安全的登录脚本中?如果没有,我们在这里可以做什么?

  2. 是否可以在WebSocket的Session中存储任意对象(例如<form>),以便我可以输入登录脚本:

    class User {...}

    session.setAttribute("web_app_user", user)

    这样就不可能以任何方式对Web应用程序进行黑客攻击吗?

1 个答案:

答案 0 :(得分:0)

通常来说,只要您使用的是WSS协议(而不是WS),就以安全和加密的方式与服务器进行通信。也就是说,有很多不同的方法可以进一步确保安全。

我认为一种相当可接受的方法是一次发送用户名和密码,以及某种客户端唯一的会话ID。如果凭据被服务器验证为可接受,则仅会话ID可以与其他调用一起传递给服务器。这样可以减少您暴露用户密码的次数。

您可能希望使用某种加密算法(例如SALT)来进一步保护您的凭据验证方法。