Como está a utilização do Padrão de Token do Sincronizador para evitar a segurança do CSRF?

Eu tenho lido sobre o uso de um padrão de token sincronizador para evitar CSRF (CSRF que significa falsificação de solicitação entre sites) e não entendo como é realmente seguro.

Digamos que eu tenha um site fakebank.com com dois URLs:

fakebank.com/withdrawForm.html - uma solicitação GET que exibe o formulário de retirada de dinheirofakebank.com/doWithdraw - POST para este url para fazer a retirada

Meu entendimento da falha de segurança é quemaliciousSite.com pode falsificar uma solicitação POST parafakebank.com/doWithdraw, e se você estiver logado no fakebank, o POST será bem-sucedido.

Digamos que implementemos um Padrão de Token de Sincronizador que irá incorporar um código secretofakebank.com/withdrawForm.html. Não podemaliciousSite.com apenas falsifique uma solicitação GET para esse formulário, analise o resultado html, obtenha o token e crie a solicitação POST com esse token?

Isso supõe que o fakebank.com não esteja verificando HTTP Referrer or Origin oumaliciousSite.com está falsificando com sucesso que o referenciador / origem é fakebank.com.

questionAnswers(2)

yourAnswerToTheQuestion