Executando verificação de segurança...
3

Acredito que nonce não tenha nenhuma relação com idempotência. São duas estratégias distinhas para soluções distinhas. O nonce regenera sempre, a idempotência não. Vamos a um exemplo para elucidar:

Em um carrinho de compras, você pode utilizar o nonce para garantir que o recebimento dos dados do carrinho de compra tenha a origem exata naquele formulário. Isso impede o abuso de uma requisição ou que uma requisição seja feita fora do navegador. Sem o nonce a pessoa não envia o formulário.

Logo, assim que a pessoa entra no carrinho é atribuido um código ao formulário e quando enviado esse código é validado para garantir que o não houve mudanças no envio e a origem é atestada. Por tanto, nonce é um recurso de segurança, com ele, por exemplo, você pode prevenir "Man-in-the-middle attack" ou que aquela sessão do carrinho e aquele envio seja roubada ou emulados.

Sempre que você atualizar a página, o nonce também deve ser alterado, garantindo a unicidade daquele envio quanto a segurança.

Já a idempotência não é um recurso de segurança, mas de integridade. Ela vai garantir que não haja duplicidade dos dados. Ainda no carrinho de compras você quer que, independente de quantas vezes a pessoa clique no botão comprar, a compra só seja processada uma única vez (em alguns casos, mesmo que ela atualize a página). Pouco tem haver com segurança, pois a ideia da idempotência é ter a mesma resposta sempre, mesmo que os valores no formulário mudem (nesse caso, deve-se atualizar a chave de idempotência também).

Então é mais uma escolha sobre utilizar as duas técnicas, mas não uma escolha sobre utilizar uma OU outra, pois elas tem propósitos totalmente diferentes.

Carregando publicação patrocinada...