¿Son inútiles Nonces?

11

Esta es probablemente una pregunta novata PERO escúchame, ¿no es el punto de usar Nonce para protegerte de cosas como los scrappers (phpcurl scrappers, etc.)? Pero mi Nonce se imprime en la cabecera del documento así:

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

Entonces, si estaba construyendo un scrapper rápido, solo obtendría el valor nonce de esa página y luego lo usaría en mi POST ... haciendo que todo el ejercicio de usar un Nonce sea inútil ...

¿Que me estoy perdiendo aqui?

Adrian
fuente
2
Nonces no tiene nada que ver con el raspado de contenido, ¿de dónde
sacaste
K, entonces, déjame usar un ejemplo común y corriente. Nonce se está utilizando para evitar un ataque relacionado con la seguridad ... el atacante aún puede obtener el nonce del sitio web ya que se está mostrando públicamente ... wtf?
Adrian
1
Probablemente tendría sentido para usted reformular esto en una pregunta más genérica sobre nonce. Demasiado para comentarios y su redacción inicial sobre el raspado no se aplica.
Rarst

Respuestas:

16

Los nonces son únicos para cada usuario conectado. No puede raspar nonces de un usuario conectado a menos que tenga sus cookies. Pero si tiene cookies de usuario, ya ha robado su identidad y puede hacer lo que quiera.

Los Nonces están destinados a proteger contra los usuarios que son engañados para que hagan algo que no querían hacer, haciendo clic en un enlace o enviando un formulario. Entonces, ellos mismos realizan esta acción (involuntariamente), no el atacante.

scribu
fuente
2

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

"En ingeniería de seguridad, nonce es un número arbitrario que se usa solo una vez para firmar una comunicación criptográfica ... A menudo es un protocolo de autenticación aleatorio para garantizar que las comunicaciones antiguas no se puedan reutilizar en ataques de repetición".

La idea es detener el envío de datos repetidos. Usted crea un identificador único de uso único para usted, de modo que cuando envía datos, solo se puede hacer una vez. No tiene nada que ver con navegar por su sitio. Que es lo que hace el raspado del sitio. ¿Cómo diferenciarías entre un bot de raspado y un bot de arrastre (como Google)?

TCBarrett
fuente
99
Debo señalar que (confusamente) WordPress nonces se puede usar más de una vez bien. Por lo tanto, tampoco tiene nada que ver con el envío repetido, se trata de verificar la intención de un usuario específico que realiza una acción específica hacia un objeto específico.
Rarst
3
@Rarst: excelente punto sobre la reutilización nonce, y lamentablemente los comentarios en el código fuente y el propio códice indican que es una clave de uso único. codex.wordpress.org/Function_Reference/wp_create_nonce : que apesta cuando desarrolla una función asumiendo que esos números no se validarán más de una vez . :(
Marcus Pope