Bonjour,
Suite à la mise à jour 4.4.22, la rétrocompatibilité du formulaire de mot_de_passe surchargé peut provoquer un warning php sur la fonction pack.
Si on génère le token sans passer par unpack parce qu’on a surchargé la génération de lien, mais qu’on a pas surchargé mot_de_passe, on se retrouve avec la fonction pack qui s’applique sur un format non souhaité.
Personnellement ce n’est pas bloquant je vais mettre à jour mes surcharges. Je pense que c’est important de le traiter quand même, le fait que la tentative de compatibilité entraine un warning me fait dire que ce serait peut être mieux de ne pas la garder et juste faire :
$host = parse_url(url_de_base(), PHP_URL_HOST);
include_spip('inc/securiser_action');
$key_host = pack('H*', calculer_cle_action($host));
$jeton_by_host = pack('H*', $jeton);
$jeton_by_host = _xor($jeton_by_host, $key_host);
if (
$auteur = auteur_verifier_jeton($jeton_by_host)
and $auteur['statut'] <> '5poubelle'
and $auteur['pass'] <> ''
and $auteur['login'] <> ''
) {
return $auteur;
}
Dans la mesure ou c’est un enjeu de sécurité ce serait probablement plus sûr de contraindre l’usage de unpack & pack.
Merci
Sinon pour éviter le warning il faudrait vérifier le format du jeton avant d’utiliser pack dans mot_de_passe. Qu’en pensez vous ?
