¿Has oído hablar de JWT o sesiones sin estado?
Esto suena como un trabajo para un paquete cifrado que se envía al cliente y se devuelve para que se envíe el siguiente paquete. Este token web JSON se puede usar para indicar quién habla con su servidor al contener la información que necesita en un formato cifrado para garantizar que las cosas sean seguras y compatibles. Esto se hace mejor a través de una conexión encriptada.
Un ejemplo
Andy y Deli están jugando un juego. Andy obtiene un JWT con su información, y Deli obtiene un JWT con su información.
Parte de la información en el JWT es la misma (identificación del juego, metadatos del juego, etc.) y otra parte es única (identificación única del jugador, ip del jugador, otra cosa exclusiva del jugador).
Cuando Andy se comunica, el JWT se envía junto con sus paquetes y verifica su información única. Una vez que se verifica eso, su movimiento se realiza y se reenvía. A continuación, recibe información específica ALTERNA (como la actualización de la hora del último movimiento de este jugador) y se la devuelve, y el movimiento se envía a todos los demás.
Ahora Deli quiere hacer trampa. En su lugar, coloca la identificación única de Andy en su movimiento y la envía para que parezca que Andy hizo un nuevo movimiento en un mal lugar.
El JWT está decodificado, y se ve que Deli está haciendo trampa, por lo que Deli recibe una patada y Andy gana de forma predeterminada desde que Deli envió un comando para un usuario que no es Deli.
Una rosa con cualquier otro nombre
A menudo verá que también se hace referencia a ellas como sesiones de cookies, sesiones sin estado, tokens web de JSON y muchos otros nombres, pero todos tienen la misma idea (y cuando se envían a través de TCP, generalmente están en las cookies)
¿Qué es una sesión sin estado?
Una sesión sin estado es una sesión que vive y muere con su token.
Por lo general, se cifran en el extremo del servidor con un secreto de servidor relacionado con lo que esté sucediendo. Estos tokens no viven en bases de datos, no reflejan ningún tipo de almacenamiento a largo plazo y caducan con el tiempo.
Para mantenerlos seguros, generalmente están encriptados con un conjunto de cifrado sólido, y un secreto de algún tipo que se descifra sobre la marcha, se modifica y luego se vuelve a cifrar. Esta información suele ser un documento JSON que contiene metainformación que no se modifica con frecuencia (si es que se hace) y que se puede enviar de un lado a otro y, dado que está cifrada, significa que cualquier modificación hace que sea nula .
Cualquier modificación a estos los convierte en nuevas sesiones, y cualquier dato en ellas se pierde. Esto significa que si realiza sus comprobaciones y saldos correctamente, incluso puede usarlo como una sesión completa para un usuario en la mayoría de los sitios web.