it-swarm.com.de

Nonces können mehrfach wiederverwendet werden? Bug/Sicherheitsproblem?

Ich habe gelesen, dass Nonces nur zur einmaligen Verwendung gedacht sind. Nach einer Ajax-Anforderung sollten Sie eine neue Nonce ausstellen, sodass bei der nächsten Ajax-Anforderung eine neue Nonce an den Server gesendet wird.

Ich habe jedoch gerade wiederholte Ajax-Anforderungen mit demselben Nonce-Token getestet und für jede Anforderung wurde wp_verify_nonce auf demselben Token als true zurückgegeben, was bedeutet, dass sie Dutzende Male wiederverwendet werden konnte.

Ist das beabsichtigt oder ein Fehler?

Muss ich bei jeder Ajax-Anfrage immer noch neue Nonces ausstellen, oder kann dieselbe Anfrage weiterhin für alle zukünftigen Anfragen verwendet werden?

7
Click Upvote

In WordPress hängen Nonces vom Benutzer, der ausgeführten Aktion und der Uhrzeit ab. In Bezug auf die Zeit ist eine Nonce 24 Stunden gültig und wechselt alle 12 Stunden. Dies wird als akzeptabler Kompromiss angesehen, da die Verwendung einer einmalig verwendeten realen Nummer das Hinzufügen eines Verfolgungssystems und das Speichern der verwendeten Nonces umfassen würde.

Nonces werden ebenfalls gehasht, und daher ist die Konstante NONCE_SALT auch Teil des resultierenden Nonces. Durch Ändern von NONCE_SALT werden alle Nonces sofort ungültig.

Sie sollten jedes Mal eine neue Nonce ausstellen. Dies ist der Fall, wenn das Timing oder die Methodik in Zukunft angepasst werden muss, wird Ihr Code weiterhin angemessen damit umgehen.

11
Otto