randomBytes() in CSRFProtection.php liefert nicht die geforderte Menge an zufälligen Bytes
Beschreibung
Mir ist aufgefallen, dass die CSRFProtection-Tokens nicht immer die gleiche Länge haben.
Nach kurzem Testen habe ich festgestellt, dass es an der randomBytes()-Methode in lib/classes/CSRFProtection.php liegt.
Die Messung der Anzahl von bytes mit mb_strlen()
ist an dieser Stelle nicht sinnvoll, da das encoding wohl eine rolle spielt und scheinbar manchmal anders interpretiert wird.
Im Kommentar steht, dass sie von "Drupal's includes/bootstrap.inc" kopiert wurde. Diese ist mittlerweile schon ziemlich veraltet und php bietet schon eine eigene random_bytes() Methode an: https://www.php.net/manual/de/function.random-bytes.php Diese sollte (wie auch im aktuellen Drupal) stattdessen genutzt werden.
Reproduzierbarkeit
Immer, beim Aufruf jeder Seite.
Edited by Jan Eberhardt