Nonces são inúteis?

11

Esta é provavelmente uma pergunta noob, mas ouça - não é o ponto de usar o Nonce para se proteger de coisas como scrappers (phpcurl scrappers etc.)? Mas o meu Nonce imprime no cabeçalho do documento assim:

/* <![CDATA[ */
var nc_ajax_getpost = {
    ...stuff...
    getpostNonce: "8a3318a44c"
};
/* ]]> */

Portanto, se eu estivesse construindo um raspador rápido, obteria o valor nonce dessa página e o usaria no meu POST ... fazendo todo o exercício de usar um Nonce inútil ...

O que estou perdendo aqui?

Adrian
fonte
2
Nonces não tem nada a ver com a raspagem conteúdo, onde tinha começado essa idéia ..?
Rarst
K, então deixe-me usar um exemplo comum então. O Nonce está sendo usado para impedir um ataque relacionado à segurança ... o invasor ainda pode obter o nonce do site, pois está sendo exibido publicamente ... wtf?
Adrian
1
Provavelmente faria sentido reformular isso em uma pergunta mais genérica sobre nonce. Demasiado demais para comentários e sua redação inicial sobre raspagem não se aplica.
Rarst

Respostas:

16

Nonces são exclusivos para cada usuário conectado. Você não pode raspar os nonces de um usuário conectado, a menos que possua os cookies. Mas se você possui os cookies de um usuário, você já roubou a identidade deles e pode fazer o que quiser.

O Nonces visa proteger os usuários que são induzidos a fazer algo que não pretendem, clicando em um link ou enviando um formulário. Portanto, eles mesmos executam essa ação (não intencionalmente), não o atacante.

scribu
fonte
2

http://en.wikipedia.org/wiki/Cryptographic_nonce

"Na engenharia de segurança, o nonce é um número arbitrário usado apenas uma vez para assinar uma comunicação criptográfica. ... Geralmente é um protocolo de autenticação aleatório para garantir que as comunicações antigas não possam ser reutilizadas em ataques de repetição".

A idéia é interromper o envio de dados repetidos. Você cria um identificador exclusivo de uso único pessoal para você, para que, quando você enviar dados, ele possa ser feito apenas uma vez. Não tem nada a ver com a navegação no seu site. Qual é o que a raspagem de sites faz. Como você diferenciaria um bot de raspagem e um arrastão (como o Google)?

TCBarrett
fonte
9
Devo observar que (confusamente) as nonces do WordPress podem ser usadas mais de uma vez. Portanto, também não tem nada a ver com o envio repetido, trata-se de verificar a intenção de um usuário específico executar uma ação específica em relação a um objeto específico.
Rarst
3
@Rarst - ponto excelente sobre a reutilização noncece e, infelizmente, os comentários no código fonte e no próprio codex indicam que é a única vez que você usa a chave. codex.wordpress.org/Function_Reference/wp_create_nonce - O que é péssimo quando você desenvolve um recurso, assumindo que esses números não serão validados mais de uma vez . :(
Marcus Papa