【问题标题】:Safest way to create a WebSocket session containing user-specific data创建包含用户特定数据的 WebSocket 会话的最安全方法
【发布时间】:2019-11-10 15:23:42
【问题描述】:

简介

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

问题

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

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

    session.setAttribute("web_app_user", user)

    user = (User) session.getAttribute("web_app_user")

    这样就不可能以任何方式破解网络应用程序?

【问题讨论】:

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


    【解决方案1】:

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

    我认为一个相当可接受的方法是发送一次用户名和密码,以及某种客户端唯一的会话 ID。如果服务器验证凭据可接受,则可以将会话 ID 与进一步的调用一起传递给服务器。这减少了您公开用户密码的次数。

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

    【讨论】:

    猜你喜欢
    • 2014-01-18
    • 2010-10-19
    • 1970-01-01
    • 1970-01-01
    • 2016-04-25
    • 2014-03-17
    • 2015-08-31
    • 2011-12-03
    • 1970-01-01
    相关资源
    最近更新 更多