Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security Websocket身份验证票证加密_Security_Websocket_Jwt - Fatal编程技术网

Security Websocket身份验证票证加密

Security Websocket身份验证票证加密,security,websocket,jwt,Security,Websocket,Jwt,我正在开发一个使用JWT身份验证的简单web应用程序。只有经过身份验证的用户才能使用服务器打开Websocket,事实证明,这比设置身份验证头()更复杂 我跟随这篇文章来解决这个问题。上面的文章描述了根据请求为经过身份验证的客户端生成一个票证(票证包含用户id+IP地址),存储票证(在X秒后过期),然后让客户端打开一个Websocket,将票证作为URL的一部分。(例如,“ws://localhost:3000/conn/[myticket]”或“ws://localhost:3000/conn

我正在开发一个使用JWT身份验证的简单web应用程序。只有经过身份验证的用户才能使用服务器打开Websocket,事实证明,这比设置身份验证头()更复杂

我跟随这篇文章来解决这个问题。上面的文章描述了根据请求为经过身份验证的客户端生成一个票证(票证包含用户id+IP地址),存储票证(在X秒后过期),然后让客户端打开一个Websocket,将票证作为URL的一部分。(例如,“ws://localhost:3000/conn/[myticket]”或“ws://localhost:3000/conn?ticket=[myticket]”)

我的问题是:这张票应该加密吗?如果票证未加密,是否有人可以伪造IP地址,然后在知道票证未过期且未使用的情况下从该地址伪造有效票证


跟进问题:这张票应该如何加密?它必须作为URL的一部分发送,所以二进制加密是可能的,还是必须是UTF-8?

从加密安全的随机数生成器生成一个16字节的字符串。使用SHA-256存储此服务器端。检查Websocket上接收到的票证是否与散列时数据库中的票证匹配。最后,保护客户端:使用HTTPS以便您可以使用WSS而不是WS,并检查源标题以防止Websocket劫持。感谢您的帮助!虽然我有点困惑,但随机生成的16字节字符串应该是票证吗?我不需要包括用户id/IP地址吗?是的,这就是问题所在。不需要用户标识符或IP地址-您的服务器端存储机制应该能够将其绑定到用户帐户。从加密安全的随机数生成器生成一个16字节的字符串。使用SHA-256存储此服务器端。检查Websocket上接收到的票证是否与散列时数据库中的票证匹配。最后,保护客户端:使用HTTPS以便您可以使用WSS而不是WS,并检查源标题以防止Websocket劫持。感谢您的帮助!虽然我有点困惑,但随机生成的16字节字符串应该是票证吗?我不需要包括用户id/IP地址吗?是的,这就是问题所在。不需要用户标识符或IP地址-您的服务器端存储机制应该能够将其绑定到用户帐户。