I nonci sono inutili?


11

Questa è probabilmente una domanda noob MA ascoltami - non è il punto di usare Nonce per proteggere da cose come gli scrappers (phpcurl scrappers ecc.)? Ma il mio Nonce stampa in testa al documento in questo modo:

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

Quindi, se stavo costruendo un rapido scrapper, avrei semplicemente ottenuto il valore nonce da quella pagina e poi lo avrei usato nel mio POST ... rendendo inutile l'intero esercizio dell'uso di un Nonce ...

Cosa mi sto perdendo qui?


2
I nonces non hanno nulla a che fare con lo scraping dei contenuti, da dove hai avuto l'idea? ...
Rarst

K quindi lasciami usare un esempio run-of-the-mill allora. Nonce viene utilizzato per prevenire un attacco relativo alla sicurezza ... l'attaccante può ancora ottenere il nonce dal sito Web poiché viene visualizzato pubblicamente ... wtf?
Adrian,

1
Probabilmente avrebbe senso riformularlo in una domanda più generica sul nonce. Troppo per i commenti e la tua formulazione iniziale sulla raschiatura non si applica.
Rarst

Risposte:


16

I nonces sono univoci per ogni utente che ha effettuato l'accesso. Non puoi cancellare le nonces di un utente che ha effettuato l'accesso a meno che tu non abbia i suoi cookie. Ma se hai i cookie di un utente, hai già rubato la loro identità e puoi fare quello che vuoi.

I nonces hanno lo scopo di proteggere dagli utenti che vengono indotti a fare qualcosa che non volevano fare, facendo clic su un collegamento o inviando un modulo. Quindi loro stessi eseguono questa azione (involontariamente), non l'attaccante.


2

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

"Nell'ingegneria della sicurezza, nonce è un numero arbitrario usato una sola volta per firmare una comunicazione crittografica. ... È spesso un protocollo di autenticazione casuale per garantire che le vecchie comunicazioni non possano essere riutilizzate negli attacchi replay."

L'idea è di interrompere l'invio di dati ripetuti. Crei un identificatore univoco univoco personale per te, in modo che quando invii i dati, può essere fatto solo una volta. Non ha nulla a che fare con la navigazione del tuo sito. Questo è ciò che fa lo scraping del sito. Come distingueresti tra un robot di scraping e un bot di pesca a strascico (come Google)?


9
Devo notare che le nonces (confuse) di WordPress possono essere usate più di una volta solo bene. Quindi non ha nulla a che fare con l'invio ripetuto, si tratta di verificare l'intento di un utente specifico che fa un'azione specifica verso l'oggetto specifico.
Rarst

3
@Rarst - punto eccellente sul riutilizzo di nonce, e purtroppo i commenti nel codice sorgente e nel codice stesso indicano che è una volta usare solo la chiave. codex.wordpress.org/Function_Reference/wp_create_nonce - Che fa schifo quando sviluppi una funzione assumendo che quei numeri non vengano convalidati più di una volta . :(
Marco Papa,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.