Sind Nonces nutzlos?

11

Dies ist wahrscheinlich eine Noob-Frage, aber hören Sie mich an - ist es nicht sinnvoll, Nonce zu verwenden, um sich vor Dingen wie Scrappern (Phpcurl-Scrappern usw.) zu schützen? Aber mein Nonce druckt wie folgt im Kopf des Dokuments aus:

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

Wenn ich also einen schnellen Scrapper erstellen würde, würde ich einfach den Nonce-Wert von dieser Seite abrufen und ihn dann in meinem POST verwenden ... was die gesamte Übung der Verwendung eines Nonce nutzlos macht ...

Was fehlt mir hier?

Adrian
quelle
2
Nonces haben nichts mit Content Scraping zu tun.
Woher
K Lassen Sie mich dann ein gewöhnliches Beispiel verwenden. Nonce wird verwendet, um einen sicherheitsrelevanten Angriff zu verhindern. Der Angreifer kann das Nonce weiterhin von der Website abrufen, da es öffentlich angezeigt wird. WTF?
Adrian
1
Es wäre wahrscheinlich sinnvoll, wenn Sie dies in eine allgemeinere Frage zu Nonce umformulieren würden. Viel zu viel für Kommentare und Ihre anfängliche Formulierung zum Thema Scraping trifft nicht zu.
Erster

Antworten:

16

Nonces sind für jeden angemeldeten Benutzer eindeutig. Sie können die Nonces eines angemeldeten Benutzers nur dann entfernen, wenn Sie deren Cookies haben. Wenn Sie jedoch Cookies eines Benutzers haben, haben Sie dessen Identität bereits gestohlen und können tun, was Sie wollen.

Nonces sollen verhindern, dass Benutzer dazu verleitet werden, etwas zu tun, was sie nicht wollten, indem sie auf einen Link klicken oder ein Formular senden. Sie selbst führen diese Aktion (unbeabsichtigt) aus, nicht der Angreifer.

Scribu
quelle
2

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

"In der Sicherheitstechnik ist Nonce eine willkürliche Zahl, die nur einmal zum Signieren einer kryptografischen Kommunikation verwendet wird. ... Es handelt sich häufig um ein zufälliges ... Authentifizierungsprotokoll, um sicherzustellen, dass alte Kommunikationen bei Wiederholungsangriffen nicht wiederverwendet werden können."

Die Idee ist, die Übermittlung von Wiederholungsdaten zu stoppen. Sie erstellen eine eindeutige eindeutige Kennung für den einmaligen Gebrauch, sodass die Übermittlung von Daten nur einmal möglich ist. Es hat nichts mit dem Surfen auf Ihrer Website zu tun. Welches ist, was Site Scraping macht. Wie würden Sie zwischen einem Scraping-Bot und einem Trawling-Bot (wie Google) unterscheiden?

TCBarrett
quelle
9
Ich muss beachten, dass (verwirrenderweise) WordPress-Nonces mehr als einmal verwendet werden können. Es hat also auch nichts mit wiederholter Übermittlung zu tun. Es geht darum, die Absicht eines bestimmten Benutzers zu überprüfen, der bestimmte Aktionen für ein bestimmtes Objekt ausführt.
Erster
3
@Rarst - Hervorragender Punkt zur Wiederverwendung von Nonce, und leider geben die Kommentare im Quellcode und im Codex selbst an, dass es sich um einen einmaligen Schlüssel handelt. codex.wordpress.org/Function_Reference/wp_create_nonce - Was scheiße ist, wenn Sie eine Funktion entwickeln, bei der davon ausgegangen wird, dass diese Zahlen nicht mehr als einmal validiert werden . :(
Marcus Pope