Como fazer autenticação sem estado (sem sessão) e sem cookie?

Bob usa um aplicativo da web para conseguir algo. E:

Seu navegador está em dieta, por isso não suportabiscoitos.A aplicação web é popular, lida com muitos usuários em um dado momento - tem queescala bem. Contanto que manter sessão imporiaum limite para o número de conexões simultânease, é claro, trará um impacto não negligenciávelpenalidade de desempenho, gostaríamos de ter um sistema sem sessão :)

Algumas notas importantes:

Nós temossegurança de transporte (HTTPS e seus melhores amigos);atrás das cortinas, o aplicativo da web delega muitas operações paraserviços externos, na correntenome do usuário (esses sistemas reconhecem Bob como um de seus usuários) - isso significa quenós temos que encaminhá-los credenciais de Bob.

Agora, como autenticamos o Bob (em todas as solicitações)? Qual seria uma maneira razoável de implementar uma coisa dessas?

jogandotênis com as credenciais viaCampos ocultos do formulário HTML... abola contém as credenciais (usuário senha) e oduas raquetes são o navegador e o aplicativo da web, respectivamente. Em outras palavras, podemos transportar dados de um lado para o outro por meio de campos de formulário em vez de cookies. Em cada solicitação da web, o navegador envia as credenciais. Embora, no caso de umaplicativo de uma única página, isso pode parecer jogarabóbora contra uma parede de borracha, em vez de jogartênis, Enquanto oformulário web contendo as credenciais podem ser mantidos vivos durante toda a vida dopágina da web (e o servidor será configurado para não oferecer as credenciais de volta).armazenando o nome de usuário e a senha no contexto da página - Variáveis ​​de JavaScript, etc. Única página requerida aqui, IMHO.autenticação baseada em token criptografado. Nesse caso, a ação de login resultaria na geração de um token de segurança criptografado (nome de usuário + senha + outra coisa). Este token será enviado de volta ao cliente e as próximas solicitações serão acompanhadas pelo token. Isso faz sentido? Nós já temos HTTPS ...outras...último recurso: não faça isso, armazene credenciais na sessão! Sessão é boa. Com ou sem cookies.

Alguma preocupação com a Web / segurança vem à sua mente, em relação a qualquer uma das ideias descritas anteriormente? Por exemplo,

time-outing - podemos manter umtimestamp, juntamente com as credenciais (carimbo de data / hora = a hora em que Bob entrou em suas credenciais). Por exemplo. quandoAGORA - timestamp> limiar, podemos negar o pedido.Cross-site scripting proteção - não deve ser diferente de qualquer forma, certo?

Muito obrigado por tomar o tempo para ler isso :)

questionAnswers(2)

yourAnswerToTheQuestion